List 컬렉션

2019. 8. 14. 15:09IT/Java

 

List 컬렉션의 특징 및 주요 메소드

특징

  • 인덱스로 관리
  • 중복해서 객체 저장 가능

 

구현 클래스

  • ArrayList
  • Vector
  • LinkedList

 

주요 메소드

기능 메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 맨끝에 추가
  void add(int index, E element) 주어진 인덱스에 객체를 추가
  set(int index, E element) 주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈
객체 검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 여부
  E get(int index) 주어진 인덱스에 저장된 객체를 리턴
  isEmpty() 컬렉션이 비어 있는지 조사
  int size() 저장되어있는 전체 객체수를 리턴
객체 삭제 void clear() 저장된 모든 객체를 삭제
  E remove(int index) 주어진 인덱스에 저장된 객체를 삭제
  boolean remove(Object o) 주어진 객체를 삭제
  • 객체 추가, 찾기, 삭제

    List<String> list = ...;
    
    list.add("홍길동");            //맨끝에 객체 추가
    list.add(1,"사람");            // 지정된 인덱스에 객체 삽입
    
    String str = list.get(1);     //인덱스로 객체 찾기
    
    list.remove(0);                //인덱스로 객체 삭제
    list.remove("사람");          // 객체 삭제 
    
  • 전체 객체를 대상으로 반복해서 얻기

    List<String> list =...;
    
    for(int i = 0 ; i < list.size(); i++ ){
        String str = list.get(i);
    }
    
    for(String str : list){     // 향상된 for문
        //저장된 총 객체수 만큼 루핑 
    }

 

 

ArrayList

    List<E> list = new ArrayList<E>();

ex) List <String> list = new ArrayList<String>(30);
  • 저장 용량(capacity)

    • 초기 : 10
    • 초기 용량 지정 가능
    • 저장 용량을 초과한 객체들이 들어오면 자동적으로 늘어난다.
  • 객체 제거

    • 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨진다.
  • 고정된 객체들로 구성된 List 생성

    List<T> list = Arrays.asList(T... a);
  List<String> list1 = Arrays.asList("돼지","토끼","말");
  for(String name : list1 ) {
      System.out.println(name);
  }

  List<Integer> list2 = Arrays.asList(1, 2, 3);
  for(int value : list2 ) {
      System.out.println(value);
  }

 

 

Vector

List<E> list =new Vector<E>();
  • 특징

    Vector는 스레드 동기화(synchronization)가 되어 있기 때문에

    복수의 스레드가 동시에 Vector에 접근해서 객체를 추가, 삭제하더라도 스레드에 안전하다.

    • ArrayList - > public boolean add(..) {...}
    • Vector - > public synchronized boolean add(..) {..} :멀티스레드 상태에선 Vector로!

 

 

LinkedList

List<E> list =new LinkedList<E>();
  • 특징

    • 인접 참조를 링크해서 체인처럼 관리
    • 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경
    • 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능을 발휘

 

 

'IT > Java' 카테고리의 다른 글

Map 컬렉션 / 검색기능을 강화시킨 컬렉션  (0) 2019.08.14
Set 컬렉션  (0) 2019.08.14
14장 람다식  (0) 2019.07.30
제네릭(Generic)  (0) 2019.07.25
스레드 - (2)  (0) 2019.07.25