Written by coh at home
Collections vs Collectors 본문
둘 다 자바에서 제공하는 클래스지만 서로 다른 목적을 갖고 있다.
1.Collections 클래스
- 정적 유틸리티 클래스로 List, Set, Map 등의 컬렉션을 조작하는 다양한 메서드 제공.
- 정렬, 검색, 동기화 등의 기능이 포함되어 있다.
주요메서드
- Collections.sort(List); 정렬
- Collections. reverse(List); 순서 뒤집기
List<Integer> arr = Arrays.asList(3,2,1);
Collections.sort(arr); // [1,2,3]
Collections.sort() 에서 정렬기준을 주기 위해서 두 가지 인터페이스를 사용할 수 있다.
- Comparable : 자신과 다른 원소를 비교
- Comparator : 서로 다른 두 원소를 비교
정렬기준은 외우고 있진 않고 그때그때 사용해보고 판단한다.
다음은 Comparator를 사용한 방법이다.
Collections.sort(arr, (a,b) -> b-a); //내림차순
- 우선순위큐에서 heap property를 설정할 때 자주 사용하니 숙지하면 좋다.
2. Collectors 클래스
- Stream API에서 사용되는 유틸리티 클래스로 스트림 결과를 List, Set, Map 등의 컬렉션으로 변환
- 주로 Stream의 결과를 수집
주요메서드
- Collectors.toList() 스트림 요소들을 List로 수집
- Collectors.toSet()
- Collectors.joining() 스트림 요소들을 연결하여 스트링으로 변환
List<Integer> numbers = Arrays.asList(1,2,3,4,5);
List<Integer> evens = numbers.stream().filter(i -> i % 2==0)
.collect(Collectors.toList());
'languages > java' 카테고리의 다른 글
[Java] 입출력과 최대힙 (1) | 2024.11.18 |
---|---|
[Stream] mapToInt vs map (0) | 2024.10.07 |
[JAVA] 제네릭의 언박싱을 탐구해보자 (0) | 2024.08.04 |
[JAVA] 함수형 인터페이스와 스트림. (0) | 2024.02.02 |
[JAVA]상속과 다형성 (1) | 2023.10.30 |