1. List 인터페이스 (1) 객체를 순서에 따라 저장하고 관리한다. (2) 배열의 불편한 부분을 개선 1) 배열 생성 후 크기 변경 불가 2) 중간의 데이터를 삭제해도 요소가 존재하는 것으로 처리. 3) 자주 사용되는 메서드 - boolean add(E e) : Collection 에 객체를 추가함 - void clear() : Collection 의 모든 객체를 제거함 - Iterator<E> iterator : Collection 을 순환할 반복자(Iterator)를 반환함 - boolean remove(Object o) : Collection 에 매개변수에 해당하는 인스턴스가 존재하면 제거함 - int size() : Collection 에 있는 요소의 개수를 반환함
(3) ArrayList, Vector 1) 일반적으로 ArrayList 를 가장 자주 사용 2) Multi thread 상태에서 동기화가 필요한 경우 Vector 를 사용 ※ 동기화?
=> 두개 이상으로 병렬 처리(thread)로 하나의 자원(변수,메소드)에 접근하여 작업 할 때 데이터 오류가 발생하지 않도록 하는 기능
(4) LinkedList 1) 논리적으로 순차적인 자료구조가 구현된 클래스 2) 다음 요소에 대한 참조값을 가지고 있음 3) 요소의 추가, 삭제에 드는 비용이 배열보다 적음
2. Map 인터페이스 (1) key - value 쌍으로 이루어짐 (2) key는 중복이 될 수 없음 (3) 순서 X (4) 검색을 위한 자료 구조임 (5) Map 내의 모든 요소를 확인하기 위해서는 key의 집합을 만든 후 출력
☆ 리스트 선언시 대부분
ArrayList list = new ArrayList(); 가 아닌
List list = newArrayList(); 로 사용
ex) Vector v = new Vector(); , Stack s = new Stack();