-
JAVA8 Stream - 스트림 중개 연산Java 2021. 3. 5. 12:51
개요
: 생성된 스트림은 중개 연산을 통해 또 다른 스트림으로 변환된다.
이러한 중개연산은 스트림을 받아 스트림을 반환하므로 중개연산은 연속으로 연결할 수 있다.
대표적인 중개연산
1. 스트림 필더링 : filter(), distinct()
2. 스트림 변환 : map(), flatMap()
3. 스트림 제한 : limit(), skip()
4. 스트림 정렬 : sorted()
5. 스트림 연산 결과 확인 : peek()
스트림 필터링
IntStream stream1 = IntStream.of(1,2,3,4,5,5,6,5,7,8);
IntStream stream2 = IntStream.of(1,2,3,4,5,5,6,5,7,8);
stream1.distinct().forEach(e->System.out.print(e+" ")); //중복된 요소 제거
Sysetm.out.println();
stream2.filter(n->n%2!=0).forEach(e->System.out.print(e + " ")); //스트림에서 홀수 만을 걸러낸다.실행결과
1 2 3 4 5 6 7 8
1 3 5 5 5 7스트림 변환
map()메서드는 해당 스트림의 요소들을 주어진 함수의 인자로 전달해 얻은 반환값으로 이루어진 새로운 스트림을 반환한다.
Stream<String> stream = Stream.of("HTML", "CSS", "JAVA", "JAVASCRIPT");
stream.map(s->s.length()).forEach(System.out::println);실행결과
4
3
4
10스트림 제한
limit() : 첫번째 요소부터 전달된 개수 만큼의 요소로 이루어진 스트림 반환
skip() : 첫번째 요소부터 전달된 개수 만큼의 요소를 제외한 요소로 이루어진 스트림 반환
IntStream stream1 = IntStream.range(0, 10);
IntStream stream2 = IntStream.range(0, 10);
IntStream stream3 = IntStream.range(0, 10);
stream1.skip(4).forEach(n -> System.out.print(n + " "));
System.out.println();
stream2.limit(5).forEach(n -> System.out.print(n + " "));
System.out.println();
stream3.skip(3).limit(5).forEach(n -> System.out.print(n + " "));4 5 6 7 8 9
0 1 2 3 4
3 4 5 6 7스트림 정렬
sorted() : 스트림을 comparator를 이용해 정렬한다. 비교자가 없을 경우 사전순으로 정렬하는게 디폴트.
Stream<String> stream1 = Stream.of("JAVA", "HTML", "JAVASCRIPT", "CSS");
Stream<String> stream2 = Stream.of("JAVA", "HTML", "JAVASCRIPT", "CSS");
stream1.sorted().forEach(s -> System.out.print(s + " "));
System.out.println();
stream2.sorted(Comparator.reverseOrder()).forEach(s -> System.out.print(s + " "));CSS HTML JAVA JAVASCRIPT
JAVASCRIPT JAVA HTML CSS'Java' 카테고리의 다른 글
쓰레드 풀(Thread pool)을 이용해 이미지 크롤러 성능 높이기 (0) 2022.08.05 Publish/Subscribe 패턴 (0) 2022.06.18 [Java] Enum의 개념과 사용예제 (0) 2021.03.05 JAVA8 Stream - 스트림 생성 (0) 2021.02.26