Java

List Interface

감식자 2007. 5. 14. 17:24
List Interface : 순서가 있는 Collection

ArrayList, LinkedList, Vector를 포함한 여러 클래스에서 List Interface를 구현한다.

이 클래스들의 객체에 기본 타입 값을 추가할 경우 오토박싱이 발생한다.
그 이유는, 이 클래스들이 단지 참조만을 객체에 저장하기 때문이다.


ArrayList와 Vector.

ArrayList와 Vector Class는 List를 크기 변경이 가능한 배열로 구현한 것임.
차이점 : Vector 클래스의 객체는 원래 기본적으로 동기화 되지만, ArrayList는 그렇지 않다.

비 동기화된 컬렉션은 동기화된 컬렉션보다 더 나은 성능을 제공한다.
스레드들이 컬렉션을 공유하지 않는 프로그램에서는 일반적으로 ArrayList를 Vector보다 더 선호한다.

ArrayList는 동기화를 고려하지 않는 Vector처럼 동작함으로 써 스레드 동기화에 따르는 부담을 가지지 않기 때문에 Vector보다 빠르게 실행된다.

List interface를 구현한
add(element) 를 사용해서 element를 추가한다.
size() 를 호출해서 요소들의 개수를 얻어온다.
get(location) 을 호출해서 해당 location의 요소의 값을 꺼내온다.

Collection Interface -> List Interface 로 부터 구현한
contains(element) 를 사용해서 Collection에 해당 element가 존재하는지 파악한다.

Collection interface를 구현하여 생성한 iterator 메소드를 호출해 Collection을 위한 Iterator를 얻어넨다.

Iterator의 hasNext() : 해당 Collection에 현재 Cursor에서 다음 Cursor의 요소가 더 남아 있는지 검사한다.
Iterator의 next() : 다음 요소에 대한 참조를 얻은 후 현재의 값을 반환.
Iterator의 remove()



LinkedList

LinkedList는 List를 연결 List로 구현한 것임.