반응형
중간 연산 : 스트림을 반환하기 때문에 연속해서 수행할 수 있다.
- 스트림 필터링 : filter(), distinct()
- 스트림 변환 : map(), flatMap()
- 스트림 제한 : limit(), skip()
- 스트림 정렬 : sort()
- 스트림 연산 결과 확인 : pick()
스트림 필터링 Filter ( ), distinct ( )
Filter() :
1. Stream에서 조건에 맞는 데이터만을 정제하여 더 작은 컬렉션을 만들어 낸다.
2. filter() 메서드에서는 매개 값으로 조건(Predicate)이 주어지고, 조건이 참이 되는 요소만 필터링한다.
IntStream stream1 = IntStream.of(7, 5, 5, 2, 1, 2, 3, 5, 4, 6);
ex). stream2.filter(n -> n % 2!= 0).forEach(e -> System.out.print(e + " ")); // 홀수 골라내기 // 7,5,5,1,3,5
distinct() : Stream의 요소들에 중복된 데이터가 존재하는 경우, 중복을 제거하기 위해 사용한다.
IntStream stream2 = IntStream.of(7, 5, 5, 2, 1, 2, 3, 5, 4, 6);
ex). stream1.distinct().forEach(e -> System.out.print(e + " ")); // 중복된 요소 제거 // 7,5,2,1,3,4,6
스트림 변환 map ( ), flatMap ( )
map() :
1. map은 기존 Stream요소들을 주어진 함수에 전달하여, 그 반환 값들로 구성된 새로운 Stream을 형성하는 연산
ex). String요소를 갖는 Stream을 모두 대문자로 바꿀 때
ex). stream.map(s->s.length()).forEach(System.out::println); // 해당 요소들의 길이 값으로 반환.
flatMap() :
1. map()과 유사하다. 스트림 요소가 만약 배열이라면 flatMap을 사용하여 배열의 각 요소의 반환값을 하나로 합친 스트림을 얻을 수 있다.
스트림 제한 limit ( ),skip ( )
limit() :
1. limit() 메서드는 해당 스트림의 첫 번째 요소부터 전달된 개수만큼의 요소만으로 이루어진 새로운 스트림을 반환
ex). stream.limit(4).forEach(n-> System.out.print(n + " ")) // 0~ 10까지 스트림이라 했을 때 0,1,2,3 출력
skip() :
1. skip() 메서드는 첫 번째 요소부터 전달될 개수만큼의 요소를 제외한 나머지 요소로 이루어진 새로운 스트림 반환
ex). stream.skip(4).forEach(n-> System.out.print(n + " ")) // 0~ 10까지 스트림이라 했을 때 5,6,7,8,9,10 출력
스트림 정렬 sorted ( )
sort() :
1. Stream의 요소들을 정렬하기 위해서 사용한다.
ex). stream.sorted()forEach(n-> System.out.print(n + " ")) 오름차순
ex). stream.sorted(Comparator.reverseOrder())forEach(n-> System.out.print(n + " "))
//Comparator.reverseOrder() 를 sorted()에 넣어주면 내림차순
스트림 연산 결과 확인 peek ( )
peek() :
1. peek() 메서드는 forEach()와 동일하게 하나씩 돌면서 출력하는 기능을 가지고 있지만, peek ( ) 메서드는 중간
연산 메서드이고, forEach()는 최종 연산 메서드이다. 주로 연산 중간에 디버깅을 위한 메서드
ex). stream.peek(n-> System.out.print(n + " "))
.skip(2)
.peek(n-> System.out.print(n + " "))
.limit(2)
.peek(n-> System.out.print(n + " "))
반응형
'IT 정보 > Java' 카테고리의 다른 글
[Java] 스트림 (Stream) (스트림 생성) (6) | 2022.05.28 |
---|---|
[Java] 스트림 (Stream) 최종 연산 (terminal operation) (22) | 2022.05.28 |
[Java] Array Class 함수 모음 (13) | 2022.05.27 |
[Java] Object Class 함수 모음 (4) | 2022.05.27 |
[Java] String Class 함수 모음 (22) | 2022.05.27 |