본 내용은 <자바의 정석> 내용을 복습, 정리하였습니다.
Chapter 11. 컬렉션 프레임워크
1. 컬렉션 프레임워크
(6) Arrays
- 배열을 다루는데 유용한 메서드가 정의되어 있음
- 배열의 복사 :
copyOf()
, copyOfRange()
- 배열 전체, 혹은 배열의 일부를 복사해서 새로운 배열을 반환. 범위 지정 시 지정된 범위의 끝은 포함하지 않음
- 배열 채우기 :
fill()
, setAll()
fill()
: 배열의 모든 요소를 지정된 값으로 채움
setAll()
: 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받음. 함수형 인터페이스를 구현한 객체를 매개변수로 지정하거나 람다식을 지정해야 함
- 배열의 정렬 및 검색 -
sort()
, binarySearch()
sort()
: 배열 정렬
binarySearch()
: 이진 탐색 사용, 단 배열이 정렬된 상태에서만 사용 가능
- 배열을 List로 변환 -
asList(Object a)
parallelXXX()
, spliterator()
, stream()
(7) Comparator와 Comparable
- Comparator, Comparable은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있음
- Comparable을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들 -> 기본적으로 오름차순으로 정렬
- 기본 정렬 기준 외에 다른 정렬 기준(내림차순 등) 을 사용하고 싶을 경우 Comparator를 구현
(8) HashSet
- Set 인터페이스를 구현한 대표적인 컬렉션 (중복값을 허용하지 않음)
- Set에 새로운 요소 추가 시 add 메서드나 addAll 메서드를 사용하는데 이미 저장되어 있는 요소와 중복된 요소를 추가하고자 하면 실패하게 됨 (false 반환)
-> 컬렉션 내 중복된 요소를 제거할 수 있음
- HashSet의 경우 저장 순서를 유지하지 않으므로 저장 순서를 유지하려면 LinkedHashSet을 이용해야 함
(9) TreeSet
- 이진 검색 트리의 형태로 데이터를 저장하는 컬랙션 클래스
- Set을 구현하였기에 중복된 데이터의 저장을 허용하지 않고, 정렬된 위치에 저장하므로 저장 순서를 유지하지 않음