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