컬렉션 프레임워크의 인터페이스는 List, Set, Map이 있다
컬렉션 클래스들은 객체를 요소를 가진다
List는 저장 순서(인덱스) 유지, 중복 허용
ArrayList는 크기를 초과하여 요소를 추가하면 자동으로 크기가 늘어난다
ArrayList는 순차적으로 요소를 추가하거나 삭제할 때 좋은 성능을 보인다
LinkedList는 요소 검색시 덜 효율적이지만, 중간의 요소를 추가하거나 삭제할 때 효율적이다
LinkedList는 객체의 참조값들이 산발적으로 저장된다
Iterator<String> it = al.iterator();
Set은 중복 저장 X, 저장 순서를 유지하지 않는다
TreeSet은 이진탐색트리를 통해 데이터를 자동으로 정렬해준다
Key + Value의 Entry 객체로 데이터를 저장
HashMap은 Key 객체를 해싱하여 메모리 주소를 얻음
HashMap을 순회하려면 Set이나 컬렉션으로 변환하여 iterator
를 사용하여야 한다
hasMap의 Key-Integer, Value-Boolean타입이면
Set<Map.Entry<Integer,Boolean>> entrySet = hasMap.entrySet();
hashMap의 Key값은 중복을 허용하지 않으므로 KeySet
을 사용하면 Key 객체의 값을 Set
에 저장한다
hashMap의 Value값은 중복을 허용하므로 values
는 set이 아니라 collection 타입
이다