Java 60(List 인터페이스)

Kang.__.Mingu·2024년 5월 15일
0

Java

목록 보기
62/108

List (중복된 객체를 저장하고 싶고, 순서 필요 List 객체)

  • List 인터페이스를 상속받는 콜렉션 클래스

    • ArrayList 클래스, Vector 클래스, LinkedList 등
  • List 객체는 객체(값)를 저장한 요소의 순서가 있으며 요소에 동일한 객체 저장 가능

  • List 객체는 첨자를 사용하여 요소를 구분해 사용 가능

  • List 객체에 저장된 요소값(객체)가 많은 경우 검색속도가 느린 단점 존재


List 메소드

  • List.add(E element)

    • 매개변수로 전달받은 객체를 List 객체의 요소에 추가하여 저장하는 메소드
  • List.toString()

    • List 객체에 저장된 모든 요소값(객체)를 문자열로 반환하는 메소드
  • List.size()

    • List 객체에 저장된 요소값의 갯수를 반환하는 메소드
  • List.get(int index)

    • List 객체에 저장된 요소값 중 매개변수로 전달받은 인덱스 위치의 요소값을 반환하는 메소드
    • 매개변수로 전달받은 인덱스가 List 객체의 요소값을 구분하는 인덱스 범위를 벗어난 경우 - IndexOutOfBoundsException 발생
  • List.add(int index, E element)

    • List 객체에 매개변수로 전달받은 첨자 위치에 요소값을 삽입하여 저장하기 위한 메소드
  • List.remove(E element)

    • List 객체에서 매개변수로 전달받은 객체의 요소값을 삭제하는 메소드

      • List 객체에 저장된 요소값이 VO 클래스로 생성된 객체인 경우에만 사용 가능

      • List 객체에 동일한 객체에 여러개 저장되어 있는 경우 첫번째 요소값만 삭제

  • List.remove(int index)

    • List 객체에서 매개변수로 전달받은 첨자 위치의 요소값을 삭제하는 메소드
  • List.set(int index, E element)

    • List 객체에 저장된 요소값에서 매개변수로 전달받은 첨자 위치인 요소값(객체)을 변경하는 메소드
  • List.contains(E element)

    • List 객체에 매개변수로 전달받은 객체와 동일한 객체가 요소값으로 없는 경우 [false]를 반환하고 동일한 객체가 요소 값으로 있는 경우 [true]를 반환하는 메소드
  • List.isEmpty()

    • List 객체에 저장된 요소값이 있는 경우 [false]를 반환하고 요소값이 하나도 없는 경우 [true]를 반환
  • Arrays.asList(E ... elememts)

    • 매개변수로 0개 이상의 객체를 전달받아 List 객체의 요소값으로 저장한 List 객체를 반환하는 정적메소드
    • 배열(Array) >> List 객체

List 객체 안에 있는 값을 출력하는 방법

Iterator 방법

  • List.iterator()

    • List 객체에 저장된 요소값을 반복 처리할 수 있는 Iterator 객체를 반환하는 메소드
  • Iterator 객체: 콜렉션 클래스의 객체에 저장된 요소값을 반복 처리하기 위한 기능을 제공하는 객체

  • 반복지시자: 내부의 커서(Cursor)를 사용하여 콜렉션 클래스의 객체 요소값을 제공받아 반복 처리

  • 제네릭에 클래스를 전달하여 Iterator 객체로 반복 처리할 수 있는 객체 설정

Iterator< 타입 > 변수명 = 참조변수.iterator();

  • Iterator 객체를 사용하여 List 객체에 저장된 모든 요소값(객체)을 제공받아 일괄 처리

  • Iterator.hasNext()

    • Iterator 객체로 처리 가능한 요소값의 존재 유무를 논리값으로 반환하는 메소드
      fallse: 처리될 요소값 미존재, true: 처리될 요소값 존재
  • Iterator.next()

    • Iterator 객체로 처리될 요소값(객체)를 반환하는 메소드

일반 for문 이용 방법

  • size() 메소드 사용

for(int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}

향상된 for문 이용 방법(적극 추천!!!)

  • 향상된 for 구문을 사용하여 List 객체에 저장된 요소값(객체)를 차례대로 제공받아 참조변수에 저장해 일괄처리 가능
    • 향상된 for 구문을 사용하면 내부적으로 Iterator 객체를 사용해 반복 처리

for(타입 str : list참조변수명){
System.out.println(str);
}


ListApp

public class ListApp {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();

        // List.add(E element): 매개변수로 전달받은 객체를 List 객체의 요소에 추가하여 저장하는 메소드
        // => List 객체의 요소에 차례대로 요소값(객체)이 저장
        list.add("홍길동");
        list.add("임꺽정");
        list.add("전우치");

        // List.toString(): List 객체에 저장된 모든 요소값(객체)를 문자열로 반환하는 메소드
        System.out.println("list = " + list);
        System.out.println("======================================================");
        list.add("임꺽정");
        System.out.println("list = " + list);
        System.out.println("======================================================");
        // List.size(): List 객체에 저장된 요소값의 갯수를 반환하는 메소드
        System.out.println("List 객체에 저장된 요소값의 갯수 = " + list.size());

        // List.get(int index): List 객체에 저장된 요소값 중 매개변수로 전달받은 첨자 위치의 요소값을 반환하는 메소드
        // => 매개변수로 전달받은 첨자가 List 객체의 요소값을 구분하는 첨자의
        // 범위를 벗어난 경우 - IndexOutOfBoundsException 발생
        System.out.println("3번째 사용자의 이름 = " + list.get(2));

        // System.out.println("10번째 사용자의 이름 = " + list.get(9));
        System.out.println("======================================================");
        // List.add(int index, E element): List 객체에 매개변수로 전달받은 첨자 위치에 요소값을 삽입하여
        // 저장하기 위한 메소드
        list.add(3, "일지매");
        System.out.println("list = " + list);
        System.out.println("======================================================");

        // List.remove(E element): List 객체에서 매개변수로 전달받은 객체의 요소값을 삭제하는 메소드
        // => List 객체에 저장된 요소값이 VO 클래스로 생성된 객체인 경우에만 사용 가능
        // => List 객체에 동일한 객체에 여러개 저장되어 있는 경우 첫번째 요소값만 삭제
        // list.remove("임꺽정");

        // List.remove(int index): List 객체에서 매개변수로 전달받은 첨자 위치의 요소값을 삭제하는 메소드
        list.remove(4);
        System.out.println("list = " + list);
        System.out.println("======================================================");

        // List.set(int index, E element): List 객체에 저장된 요소값에서 매개변수로 전달받은 첨자
        // 위치인 요소값(객체)을 변경하는 메소드
        list.set(1, "임걱정");
        System.out.println("list = " + list);
        System.out.println("======================================================");
        // List 객체에 저장된 모든 요소값에 대한 일괄 처리 - 일반 for 구분 사용
        for(int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + " ");
        }
        System.out.println( );
        System.out.println("======================================================");

        // List 객체에 저장된 모든 요소값에 대한 일괄 처리 - Iterator 객체 사용
        // List.iterator(): List 객체에 저장된 모든 요소값을 일괄 처리할 수 있는 Iterator 객체를
        Iterator<String> iterator = list.iterator();

        while(iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
        System.out.println();
        System.out.println("======================================================");

        // List 객체에 저장된 모든 요소값에 대한 일괄 처리 - 향상된 for 구문 사용
        // 3개 중에 가장 편함
        for(String str: list){
            System.out.print(str + " ");
        }
        System.out.println();
        System.out.println("======================================================");

        // List.contains(E element): List 객체에 매개변수로 전달받은 객체와 동일한 객체가 요소값으로
        // 없는 경우 [false]를 반환하고 동일한 객체가 요소 값으로 있는 경우 [true]를 반환하는 메소드
        if (list.contains("홍길동")) {
            System.out.println("List 객체에 저장된 요소값이 맞습니다.");
        }else {
            System.out.println("List 객체에 저장된 요소값이 아닙니다.");
        }
        System.out.println("======================================================");

        // List.clear(): List 객체에 저장된 모든 요소값을 삭제하는 메소드
        list.clear();
        System.out.println("list = " + list);
        System.out.println("======================================================");

        // List.isEmpty(): List 객체에 저장된 요소값이 있는 경우 [false]를 반환하고
        // 요소값이 하나도 없는 경우 [true]를 반환
        if (list.isEmpty()) { // if(list.size() == 0) 명령과 동일
            System.out.println("List 객체에 저장된 요소값이 하나도 없습니다.");
        }

        // Arrays.asList(E ... elememts): 매개변수로 0개 이상의 객체를 전달받아 List 객체의
        // 요소값으로 저장한 List 객체를 반환하는 정적메소드
        List<Integer> memberList = Arrays.asList(10,20,30,40,50); // 배열(Array) >> List 객체
        System.out.println("memberList = " + memberList);
        System.out.println("======================================================");
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글