나는 자바 문서를 읽고 this sentence을 발생했습니다 : 탈출 해치 작업 iterator()
및 spliterator()
제외 Java 스트림에서 "escape-hatch operation"이란 무엇입니까?
는, 실행은 터미널 작업이 호출 될 때 시작하고, 터미널 작업이 완료되면 종료됩니다.
"탈출구 작동"이 무엇을 의미하는지 모르겠습니다. 누군가이 용어를 설명해 주시겠습니까? stream
패키지의 javadoc에서
나는 자바 문서를 읽고 this sentence을 발생했습니다 : 탈출 해치 작업 iterator()
및 spliterator()
제외 Java 스트림에서 "escape-hatch operation"이란 무엇입니까?
는, 실행은 터미널 작업이 호출 될 때 시작하고, 터미널 작업이 완료되면 종료됩니다.
"탈출구 작동"이 무엇을 의미하는지 모르겠습니다. 누군가이 용어를 설명해 주시겠습니까? stream
패키지의 javadoc에서
:
거의 모든 경우에, 터미널 작업은 열망 반환 전에 파이프 라인의 데이터 소스 및 가공 자신의 통과를 완료. 터미널 작업
iterator()
및spliterator()
만이 아닙니다. 기존 작업이 작업에 충분하지 않은 경우 임의의 클라이언트 제어 파이프 라인 통과를 가능하게하는 "이스케이프 해치"로 제공됩니다. 아니지만iterator()
및spliterator()
경우의 단말 동작을 반환 할 때, 대부분의 경우 스트림의 탐색이 완료되었음을 의미
이러한 단말기 동작 Iterator
또는 Spliterator
중 하나를 사용하여 반환되지만 파이프 라인은 여전히 "열린"상태이며 반복기를 통해 요소가 요청 될 때 처리됩니다. 이 방법을 사용하면 스트림 처리는 다음 요소가 요청 된 경우에만 스트림에 대한 작업이 실행되기 때문에 느린이됩니다. iterator()
메서드를 호출 할
Iterator<Person> iterator = persons
.stream()
.filter(p -> !p.getName().equals("Mike Tyson"))
.iterator();
후, 스트림은 "종료"됩니다 : 당신은 할 수 없습니다 체인 더 방법. 그러나 반환 된 반복자의 next()
메서드를 호출하여 스트림의 요소에 액세스 할 수 있으며 스트림은 처음 수행 할 때만 처리되기 시작합니다. 그리고 이는 iterator()
또는 spliterator()
터미널 작업이 사용되는 경우에만 해당됩니다.