Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9의 JShell에서 중간 스트림 작업을 사용하는 방법은 무엇입니까?


JShell 자바 에 도입된 도구입니다. 9 , 표현식, 변수, 메소드, 클래스 등과 같은 간단한 명령문을 입력으로 받아 즉각적인 결과를 생성합니다.

스트림 값의 시퀀스입니다. 중간 스트림 작업 스트림을 사용하는 작업입니다. 예를 들어 람다 식에 적용할 수 있으며 그 결과로 다른 요소 스트림을 생성할 수 있습니다.

가장 인기 있는 중간 스트림 작업은 다음과 같습니다.

  • 1) 정렬(): 이 방법은 결과적으로 소비된 스트림의 요소를 보존하지만 자연스럽게 정렬된 순서로 배치합니다.
  • 2) 고유(): 이 메서드는 입력 스트림의 고유한 요소만 유지하는 스트림을 반환하며 유지된 요소의 상대적 순서를 유지할 수 있습니다.
  • 3) 필터(): 이 방법은 일부 논리를 기반으로 스트림 요소를 필터링하는 데 사용할 수 있습니다.
  • 4) 지도(): 이 메서드는 람다 식을 적용하여 입력 스트림 요소에서 새 결과를 계산합니다. 그런 다음 이러한 결과의 스트림을 출력으로 반환합니다.


아래 코드 스니펫에서 JShell 도구에서 다양한 중간 스트림 작업을 구현할 수 있습니다.

스니펫

jshell> List<Integer> numbers = List.of(3, 10, 23, 200, 77, 9, 32);
numbers ==> [3, 10, 23, 200, 77, 9, 32]

jshell> numbers.stream().sorted().forEach(elem -> System.out.println(elem));
3
9
10
23
32
77
200

jshell> List<Integer> numbers = List.of(3, 5, 54, 280, 5, 9, 40);
numbers ==> [3, 5, 54, 280, 5, 9, 40]

jshell> numbers.stream().distinct().forEach(elem -> System.out.println(elem));
3
5
54
280
9
40

jshell> numbers.stream().distinct().sorted().forEach(elem -> System.out.println(elem));
3
5
9
40
54
280

jshell> numbers.stream().distinct().map(num -> num * num).forEach(elem -> System.out.println(elem));
9
25
2916
78400
81
1600