티스토리 뷰
1. 컬렉션 프레임워크 (Collection Framework) 정의
- 컬렉션 : 객체를 수집하고 저장하는 역할을 수행
- 프레임워크 : 사용방법을 미리 정해놓은 라이브러리
→ 컬렉션 프레임워크 : 객체를 수집하고 저장하는 역할을 수행하기 위해 사용 방법을 정의한 라이브러리
List |
- 순서를 유지, 중복저장 가능 |
ArrayList, LinkedList, Vector |
Set |
- 순서를 유지하지 않고, 중복저장 불가 |
HashSet, TreeSet |
Map |
- Key, Value가 쌍으로 저장되고, Key는 중복 불가, Value는 중복 가능 |
HashMap, TreeMap, HashTable |
2. ArrayList vs LinkedList vs Array
Array |
ArrayList |
LinkedList |
||
- 배열 선언 시, 크기를 반드시 할당 (동적으로 배열 크기 증가 불가) - 배열은 제한적인 기능만을 제공하기 때문에 자바에서는 List 사용 권장 |
- 생성 시, 크기 할당 불필요! 자동으로 크기가 증가 - 동일한 객체 중복 저장 가능 - 제네릭을 사용하면 불필요한 형변환 없이 간편하게 사용 가능 |
|||
- ArrayList 중간에 데이터가 삽입되면, → 순차적으로 데이터를 삽입할 경우 권장! | - LinkedList는 노드와 데이터로 구성이 되있고, 노드는 인접 데이터에 대한 참조값 저장 → 중간에 데이터가 삽입할 경우, 좌우 노드의 참조값만 변경하면 되기 때문에 편리함 → 그러나 데이터를 추가할 때마다 노드에서 참조값에 대한 정보를 저장해야 하기 때문에 순차적인 데이터 삽입은 ArrayList 권장! |
3. Set
- 데이터의 순서(Index)를 관리하지 않고, 중복 데이터를 삽입 불가 (Null도 하나만 삽입 가능)