컬렉션이란 사전적 의미로 요소(객체)를 수집해 저장하는 것이다. 컬렉션 프레임 워크는 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리로 java.util 패키지에 포함된다. 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스 이용한다.
배열의 문제점
저장할 수 있는 객체 수가 배열을 생성할 때 결정
객체 삭제했을 때 해당 인덱스가 비게 된다.
• 인덱스로 관리
• 중복해서 객체 저장 가능
• ArrayList
• Vector
• LinkedList
저장 용량(capacity)
객체 제거
특징
• 수학의 집합에 비유
• 저장 순서가 유지되지 않음
• 객체를 중복 저장 불가
• 하나의 null만 저장 가능
• HashSet, LinkedHashSet, TreeSet
전체 객체 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공
• 인덱스로 객체를 검색해서 가져오는 메소드 없음
특징
• 동일 객체 및 동등 객체는 중복 저장하지 않음
• 동등 객체 판단 방법
• 키(key)와 값(value)으로 구성된 Map.Entry 객체를 저장하는 구조
• 키와 값은 모두 객체
• 키는 중복될 수 없지만 값은 중복 저장 가능
• HashMap, Hashtable, LinkedHashMap, Properties, TreeMap
• 키 객체는 hashCode()와 equals() 를 재정의해 동등 객체가 될 조건을 정해야
키 타입은 String 많이 사용
– String은 문자열이 같을 경우 동등 객체가 될 수 있도록
hashCode()와 equals() 메소드가 재정의되어 있기 때문