-
[JAVA Stream] map, filter, sorted 사용법 알아보기프로그래밍 언어/JAVA 2023. 5. 24. 11:48
책을 보며 공부하고 있는데 다음과 같은 문장이 나왔다.
vo.getAuthList().stream() .map(auth -> new SimpleGrantedAuthority(auth.getAuth())).collect(Collectors.toList())
이는 AuthVO 인스턴스를 GrantedAuthority 객체로 변환하는 과정이다. 여기서 map의 사용법에 의문을 가졌다.
https://wonisdaily.tistory.com/133
스트림에 대한 기본적인 설명은 위에 링크 참고!
배열에 원소를 가공하는데 있어 map, filter, sorted 등이 있다.
📌 map은 요소들을 특정조건에 해당하는 값으로 변환해 준다.
-> 요소들은 대,소문자 변형, 형변환 등의 작업을 하고 싶을 때 사용이 가능하다.
📌 filter는 요소들을 조건에 따라 걸러내는 작업을 해준다.
-> 길이의 제한, 특정문자포함 등의 작업을 하고 싶을때 사용 가능하다.
📌 sorted는 요소들을 정렬해주는 작업을 해준다.
-> 요소들의 가공이 끝났다면 리턴해줄 결과를 collect를 통해 만들어준다.
📑 map()
package ex; import java.util.ArrayList; import java.util.Arrays; import java.util.stream.Collectors; public class StreamEx { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Melon", "Grape","Strawbery")); System.out.println(list); // [APPLE, BANANA, MELON, GRAPE, STRAWBERY] System.out.println(list.stream().map(s->s.toUpperCase()).collect(Collectors.toList())); // [APPLE, BANANA, MELON, GRAPE, STRAWBERY] list.stream().map(String::toUpperCase).forEach(t-> System.out.println(t)); } }
리스트의 요소들을 대문자로 변경해주는 코드이다. 요소들을 대문자로 가공했다면 collect를 이용해 결과를 리턴받을 수 있고, forEach를 이용해 바로 출력할 수 있다.
📑 filter
filter는 요소를 특정 기준으로 걸러낼 수 있다.
System.out.println(list.stream().filter(s->s.length()>5).collect(Collectors.toList())); //[Banana, Strawbery]
📑 sorted
리스트의 요소를 정렬한다.
System.out.println(list.stream().sorted().collect(Collectors.toList())); // [Apple, Banana, Grape, Melon, Strawbery]
반응형'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] repeat 메서드, for문 대신 사용하기 간편! (0) 2023.06.01 [JAVA] BufferedReader와 BufferedWriter 사용법 (2) 2023.05.25 [JAVA] java.io.File API 주요 메서드 (0) 2023.05.10 [JAVA] java.io.File 의 mkdirs()와 mkdir() 차이 (0) 2023.05.10 [JAVA] String, StringBuilder, StringBuffer의 차이점 알아보기 (0) 2023.04.26