컬렉션 프레임워크
-
데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것
-
특정 자료 구조에 데이터를 추가, 삭제, 수정, 검색하는 등의 동작을 수행하는 편리한 메서드들을 제공
컬렉션 프레임워크 구조
컬렉션 프레임워크는 주요 인터페이스로 List, Set, Map을 제공한다.
- List
- 데이터의 순서 0, 중복 O
- 구현 클래스 : ArrayList, Vector, Stack, Queue, LinkedList
- Set과 공통점이 많아 Collection 인터페이스로 묶임
- Set
- 데이터 순서 유지 X, 중복 X
- 구현 클래스 : HashSet, TreeSet
- Collection 인터페이스로 묶임
- Map<K,V>
- key와 value의 한 쌍으로 데이터 저장
- 데이터 순서 유지 X, Key는 중복 저장 X (값을 식별하기 위해), value는 중복 O
List
- 배열과 같이 객체를 일렬로 늘어놓은 구조
- 객체를 인덱스로 관리
- 객체 저장 시 자동으로 인덱스 부여, 인덱스로 객체를 검색, 추가, 삭제 등 기능 제공
- List 인터페이스를 구현한 클래스로 ArrayList, LinkedList가 많이 사용됨
ArrayList
- 배열을 이용하기 때문에 인덱스를 이용해 배열 요소에 빠르게 접근 가능
- 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 함(배열은 크기를 변경할 수 없는 인스턴스이므로)->요소의 추가 및 삭제에 걸리는 시간 길어짐
- 자바의 Collection은 인터페이스, Collections는 클래스이다. Collection 인터페이스는 Set, List, Queue 인터페이스가 구현하고 있다.
Collections 클래스는 배열 정렬 시 Collections.sort()를 사용하는데, 이것을 할 수 있는 이유가 sort()가 List 인터페이스를 사용한 객체를 매개변수로 받는 것이다.
Collections는 Collection을 다루기 위한 클래스이다. 객체를 다루기 위한 Object 클래스와 비슷하다. max(), min(), disjoint(), replaceAll() 등 다양한 메서드 제공를 제공한다.