collect자체의 기능이 너무 많기 때문에 주로 쓰이는 것 순으로 정리하려 한다.
collect()는 Stream의 데이터를 변형하고 원하는 자료형으로 변환해 준다.
- Stream의 아이템들을 List 또는 Set 자료형으로 변환
- Stream의 아이템들을 joining
1. 어떠한 자료형에서 HashSet자료형으로 데이터를 변환하는 경우.
Stream<String> fruits = Stream.of("banana", "apple", "mango", "kiwi", "peach", "cherry", "lemon");
Set<String> fruitSet = fruits.collect(Collectors.toSet());
for (String s : fruitSet) {
System.out.println(s);
}
어떠한 자료형에서 List자료형으로 데이터를 변환하는 경우
Stream<String> fruits = Stream.of("banana", "apple", "mango", "kiwi", "peach", "cherry", "lemon");
List<String> fruitList = fruits.collect(Collectors.toList());
for (String s : fruitList) {
System.out.println(s);
}
//하지만 이런 경우는 심플하게 List<String> fruitList=fruits.toList();로 많이 사용한다.
2. Stream 요소를 1개의 String객체롤 반환하고 싶은 경우
Stream<String> fruits = Stream.of("banana", "apple", "mango", "kiwi", "peach", "cherry", "lemon");
String fruitString=fruits.collect(Collectors.joining(", "));//이와 같은 방식도 되고
String fruitSting2=fruits.map(Objects::toString).collect(Collectors.joining(", "));//이와 같은 방식도 된다.(복습 스트림은 한번만 사용가능함)
System.out.println(fruitString);
'자바 언어 & 객체지향 지식' 카테고리의 다른 글
Collections.nCopies 함수 라이브러리 분석과 함께 깊이 있게 이해하기 (0) | 2023.12.27 |
---|---|
내부 클래스의 접근제어의 의미를 예시와 함께 (0) | 2023.11.24 |
언제 내부 클래스를 써야 적당한가? (1) | 2023.11.24 |
(자바 표현법) 반복자(Iterator)를 갖는 범용자료구조의 구현 (1) | 2023.11.20 |
공변성, 반공변성, 무공변성에 대하여 (0) | 2023.10.13 |