YOUNGJIN
자바의 정석 11장 ( Collection ) 본문
Collection: 다수의 데이터
모든 Collection 클래스들은 아래의 3가지의 인터페이스 중 하나를 구현하고 있다.
List: 순서가 있는 데이터의 집합. 데이터의 중복 허용. (ArrayList, LinkedList)
Set: 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않음. (HashSet, TreeSet)
Map: key와 value의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. (HashMap, LinkedHashMap, TreeMap)
ArrayList vs LinkedList
순차적으로 데이터를 추가/삭제하는 경우, ArrayList가 빠르다. (일반 배열과 구조가 유사)
비순차적으로 데이터를 추가/삭제하는 경우, LinkedList가 빠르다.
PriorityQueue: Queue 인터페이스의 구현체 중의 하나로, 저장한 순서에 관계없이 우선순위가 높은 것부터 꺼내게 된다는 특징이 있다. 저장공간으로 배열을 사용하며, 각 요소를 힙이라는 자료구조의 형태로 저장한다.
Queue pq=new PriorityQueue();
Deque: Queue의 자식으로, Queue와 달리 양쪽 끝 모두에 추가/삭제가 가능하다. 구현체로는 ArrayDeque와 LinkedList가 있다.
Queue와 Deque는 인터페이스, PriorityQueue와 ArrayDeque 등은 그것을 구현한 클래스.
Iterator: 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화시키기 위해 정의된 인터페이스. Collection 인터페이스에는 Iterator를 반환하는 iterator()가 정의됨.
List list=new ArrayList();
Iterator it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
Arrays: 배열을 다루는데 유용한 메서드가 정의되어 있음.
배열의 복사 - copyOf(), copyOfRange()
배열 채우기 - fill(), setAll()
배열의 정렬과 검색 - sort(), binarySearch()
Comparable: 기본 정렬기준을 구현하는데 사용
Comparator: 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용
public interface Comparator{
int compare(Object o1,Object o2);
}
public interface Comparable{
int compareTo(Object o);
}
HashSet vs TreeSet vs LinkedHashSet
HashSet: 데이터 중복X
TreeSet: HashSet + 저절로 오름차순으로 데이터를 정렬, 이진검색트리 형태로 저장
LinkedHashSet: HashSet + 입력된 순서대로 데이터를 정렬
TreeMap: HashMap + 저절로 오름차순으로 데이터를 정렬, 이진검색트리 형태로 저장
LinkedHashMap: HashMap + 입력된 순서대로 데이터를 정렬
Collections: 컬렉션을 다루는데 유용한 메서드가 정의되어 있음.
'Study > Java' 카테고리의 다른 글
자바의 정석 13장 ( Thread ) (0) | 2023.01.18 |
---|---|
자바의 정석 12장 ( Generics, 열거형, Annotation ) (0) | 2023.01.15 |
메소드 참조 (0) | 2023.01.13 |
자바의 정석 9장 ( java.lang 패키지와 유용한 클래스 ) (0) | 2023.01.11 |
자바의 정석 8장( 예외처리 ) (0) | 2023.01.11 |