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

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


JShell 대화형 도구 입니다. 간단한 문장, 표현식 등을 입력받아 평가하고 그 결과를 사용자에게 즉시 출력하는 기능입니다.

터미널 작업 스트림을 입력으로 사용하는 스트림 작업입니다. 그리고 반환하지 않음 모든 출력 스트림. 예를 들어 터미널 작업은 람다 에 적용될 수 있습니다. 표현 단일 결과를 반환합니다(단일 기본값/객체 또는 단일 객체 컬렉션 ). 감소() , 최대()최소() 메소드는 이러한 터미널 작업의 몇 가지입니다.

아래 코드 스니펫에서 다양한 터미널 작업을 사용할 수 있습니다. min() , 최대()감소() JShell의 메소드

스니펫

jshell> IntStream.range(1, 11).reduce(0, (n1, n2) -> n1 + n2);
$1 ==> 55

jshell> List.of(23, 12, 34, 53).stream().max();
|  Error:
|  method max in interface java.util.stream.Stream cannot be applied to given types;
|    required: java.util.Comparator
|    found: no arguments
|    reason: actual and formal argument lists differ in length
|    List.of(23, 12, 34, 53).stream().max();
|    ^----------------------------------^

jshell> List.of(23, 12, 34, 53).stream().max((n1, n2) -> Integer.compare(n1, n2));
$2 ==> Optional[53]

jshell> $2.isPresent()
$3 ==> true

jshell> List.of(23, 12, 34, 53).stream().max((n1, n2) -> Integer.compare(n1, n2)).get();
$4 ==> 53

jshell> List.of(23, 12, 34, 53).stream().filter(e -> e%2==1).forEach(e -> System.out.println(e))
23
53

jshell> List.of(23, 12, 34, 53).stream().filter(e -> e%2==1).collect(Collectors.toList());
$6 ==> [23, 53]

jshell> List.of(23, 12, 34, 53).stream().min((n1, n2) -> Integer.compare(n1, n2)).get();
$8 ==> 12