[JAVA]Collections vs Collectors

coh·2024년 10월 4일
0

JAVA

목록 보기
1/2

이름이 뭔데 이렇게 비슷하다냐..
둘 다 자바에서 제공하는 클래스지만 서로 다른 목적을 갖고 있다.

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());
profile
Written by coh

0개의 댓글