ch11-1 컬렉션 프레임웍
- 컬렉션(collection) : 여러 객체(데이터)를 모아 놓은 것을 의미
- 프레임웍(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식
프로그램의 생산성이 올라감, 유지보수가 쉬워짐
- 컬렉션 프레임웍 (collection framework)
: 컬렉션(다수의 객체)를 다루기 위한 표준화된 프로그래밍 방식
java.util 패키지에 포함. JDK 1.2부터 제공
이 전에는 표준화가 되어있지 않았었다. -> 정리를 함
객체를 다룬다 -> 객체를 저장, 삭제, 검색, 정렬 하는 것
객체 : 다수의 데이터
- 컬렉션 클래스 (collection class)
: 다수의 데이터를 저장할 수 있는 클래스 (Vector, ArrayList, HashSet)
ch11-2 컬렉션 프레임웍의 핵심 인터페이스
1. List
- 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다.
ex) 대기자 목록
- 구현 클래스 : ArrayList, LinkedList, Stack, Vector 등
2. Set
- 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않음.
ex) 양의 정수 집합, 소수의 집합
- 구현 클래스 : HashSet, TreeSet 등
3. Map
- 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합.
- 순서는 유지되지 않고, 키는 중복 허용이 안되고, 값은 중복 허용.
ex) 우편번호, 지역번호(전화번호), id(key)/password(value)
- 구현 클래스 : HashMap, TreeMap, Hashtable, Properties등
ch11-3 Collection 인터페이스의 메서드
- Collection 인터페이스가 어떤 메서드들이 있는지 중점적으로 살펴본다.
- 기본적으로 추가(add), 삭제(remove), 검색(contains) 등이 있다.
ch11-4 List 인터페이스의 메서드
- 저장된 순서가 유지되고 중복을 허용한다.
- Vector(옛날거), ArrayList(Vector를 개선), LinkedList 등
ArrayList와 LinkedList가 핵심이다.
- 추가(add), 삭제(remove), 가져오기(get), 변경하기(set)
검색(indexOf 순방향, lastIndexOf 역방향), 정렬(sort), 일부(subList)
- List와 Set은 Collection의 자손이므로 Collection이 갖고 있는 메서드도 갖고 있게 된다.
ch11-5 Set 인터페이스의 메서드
- 순서가 없고 중복이 없다.
- HashSet과 TreeSet이 핵심이다.
- Collection 인터페이스와 동일한 메서드를 갖고 있다.
- 집합과 관련된 메서드가 있다. (합집합, 교집합, 차집합, 교집합)
반환 타입은 boolean이고 Collection에 변화가 있으면 true, 아니면 false.
ch11-6 Map 인터페이스의 메서드
- 순서가 없고 키는 중복을 허용하지 않고, 값은 중복을 허용.
- Key와 Value를 pair로 저장.
- HashMap(Hashtable가 예전버전)과 TreeMap이 핵심이다.
단, 원래 HashMap은 순서가 없지만 LinkedHashMap은 순서가 있다.
- Hashtable은 동기화가 되어있지만 HashMap은 동기화가 안되어 있다.
따로 동기화 처리 하는 방법이 있다.
- 추가(put), 삭제(remove), 검색(containsKey/Value), 키 읽어오기
Set keySet()
, 값만 읽어오기 Collection values()
, 한 쌍 읽어오기 Set entrySet()
Collection values()
은 List와 Set 어떤 타입으로 와도 상관 없기 때문에 반환 타입이 Collection이다.