List

김민석·2023년 8월 10일
0

컬렉션의 주요 인터페이스

자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능하다.
구현 클래스로 ArrayList와 Vector, LinkedList가 있다.

ArrayList

  • List의 후손으로 초기 저장 용량은 10으로 자동 설정되며 따로 지정도 가능하고
    저장 용량을 초과한 객체들이 들어오면 자동으로 늘어나며 고정도 가능하며
    동기화(Synchronized)를 제공하지 않는다.
    (동기화 : 하나의 자원(데이터)에 대해 여러 스레드가 접근 하려 할 때 한 시점에서 하나의 스레드만 사용할 수 있도록 하는 것)
  • ex)
List<E> list = new ArrayList<E>();

Vector

  • List의 후손 ArrayList와 동등하지만 동기화(Synchronized)를 제공한다는 점이 ArrayList와 차이점이다.
    (List 객체들 중에서 가장 성능이 좋지 않음)

LinkedList

  • List의 후손으로, 인접 참조를 링크해 체인처럼 관리한다. 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞/뒤 링크만 변경하면 되기 때문에 객체 삭제와 삽입이 빈번하게 일어나는 곳에서는 ArrayList보다 성능이 좋음 (추가, 제거할 때 효율이 좋음)

List 계열 주요 메서드

1) 객체 추가

  • 메서드 : add(E e), 리턴 타입 : boolean
    주어진 객체를 맨 끝에 추가
  • 메서드 : add(int index, E element), 리턴 타입 : void
    주어진 인덱스에 객체를 추가
  • 메서드 : addAll(Collection<? extends E> c), 리턴 타입 : boolean
    주어진 Collection타입 객체를 리스트에 추가
  • 메서드 : set(int index, E element), 리턴 타입 : E
    주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈

2) 객체 검색

  • 메서드 : contains(Object o), 리턴 타입 : boolean
    주어진 객체가 저장되어 있는지 여부
  • 메서드 : get(int index), 리턴 타입 : E
    주어진 인덱스에 저장된 객체를 리턴
  • 메서드 : iterator(), 리턴 타입 : Iterator<E.>
    저장된 객체를 한번씩 가져오는 반복자 리턴
  • 메서드 : isEmpty(), 리턴 타입 : boolean
    컬렉션이 비어 있는지 조사
  • 메서드 : size(), 리턴 타입 : int
    저장되어 있는 전체 객체수를 리턴

3) 객체 삭제

  • 메서드 : clear(), 리턴 타입 : void
    저장된 모든 객체를 삭제
  • 메서드 : remove(int index), 리턴 타입 : E
    주어진 인덱스에 저장된 객체를 삭제
  • 메서드 : remove(Object o), 리턴 타입 : boolean
    주어진 객체를 삭제

0개의 댓글