본문 바로가기

자바 언어 & 객체지향 지식

자바 스트림 라이브러리 collect의 쓰임

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);