-
자바 스트림(stream)을 이용한 데이터 가공 (map, filter, sorted / collect/foreach)Java 2022. 11. 11. 15:27
Stream?
컬렉션의 여러 인터페이스(List, Set, Map 등)마다 데이터 핸들링을 위한 메서드가 다 다르다. 하지만 이것을 stream으로 변환해줌으로써 통일된 메서드로 데이터를 다룰 수 있다.
더불어 람다 함수형식을 사용할 수 있어 간결하고 깔끔한 코드로 요소를 처리할 수 있다.
Stream으로 변환된 배열의 원소를 가공할 때는 map, filter, sorted 등이 있다.
map : 요소들을 특정 조건에 해당하는 값으로 변환해줄 때
요소들을 대, 소문자 변형 등 작업을 하고 싶을 때 사용한다.
list.stream().map(s->s.toUpperCase()); list.stream().map(String::toUpperCase);
filter : 요소들을 조건에 따라 걸러내고 싶을 때
길이의 제한, 특수문자 포함 등 작업을 하고싶을 때 사용한다.
sorted : 요소들을 정렬해주고 싶을 때
Stream 배열의 가공이 끝난 뒤에는 collect를 통해 묶어주는 과정이 필요하다.
collect 메서드로 배열을 만들 땐 List로 할지, Set으로 할지, string으로 보여줄 지 등 선택이 가능하다.
System.out.println(list.stream().map(s->s.toUpperCase()).collect(Collectors.joining(" "))); //APPLE BANANA MELON GRAPE STRAWBERRY System.out.println(list.stream().map(s->s.toUpperCase()).collect(Collectors.toList())); //[APPLE, BANANA, MELON, GRAPE, STRAWBERRY] System.out.println(list.stream().map(s->s.toUpperCase()).collect(Collectors.toSet())); //[APPLE, GRAPE, BANANA, MELON, STRAWBERRY]
'Java' 카테고리의 다른 글
☑️[JAVA] int vs Intager / boolean vs Boolean (0) 2022.11.17 [JAVA] stream 기본집계 (0) 2022.11.11 [java]IntStream.of()를 이용한 평균값 구하기 (0) 2022.11.11 [JAVA] Stream을 만드는 방법들 (0) 2022.11.11 Pair.of()를 사용해보장 (0) 2022.11.11