> Java > java지도 시간 > Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?

Barbara Streisand
풀어 주다: 2025-02-07 12:09:11
원래의
986명이 탐색했습니다.

Break or return from Java 8 stream forEach? Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같습니다.

작업에서 방해하거나 돌아 오는 방법은 무엇입니까?

전통적인 루프는 조기 중단 또는 반환을 허용하지만 스트림의 forEach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다.

추가 읽기 : Java 스트림 API 개선 스트림을 이해합니다

forEach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 각 요소를 처리하도록 설계되었습니다.

위의 예에서 는 목록의 각 이름을 인쇄합니다. 그러나 "Bob"을 볼 때 처리를 중지하고 싶다면 어떻게해야합니까? 왜 휴식이나 반환을 사용할 수 없습니까?

는 전통적인 루프 구조를 사용하지 않으므로 또는

내부의 람다 표현식에서는 문장이 허용되지 않습니다. Lambda 표현 내부의

진술은 Lambda 표현 자체를 종료 할 것이며

또는 동봉 된 방법을 종료하지 않습니다. forEach 또는 break를 사용하려고 시도하면 컴파일 오류가 발생합니다. return

대체 방법 > 1. 루프에 정기적으로 사용하십시오 루프가 방해하기 위해 필요한 경우 클래식
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream().forEach(name -> {
    System.out.println(name);
});
로그인 후 복사
루프는 효과적이고 종종 최상의 옵션입니다.

forEach < > 2

방법은 조건이 충족되면 스트림 처리가 단락 될 것임을 의미합니다.

< > 3 Java 9 이상을 사용하는 경우 forEach 메소드를 사용하여 특정 조건이 충족 될 때까지 요소를 처리 할 수 ​​있습니다. break continue < > 4. 사용 예외 (권장되지 않음) <🎜 🎜> 기술적으로, return 메소드를 종료하기 위해 예외를 던질 수 있지만 권장하지는 않습니다. forEach break > 5. 사용자 정의 스플 라테라터 continue를 사용하십시오

는 스트림 처리를보다 세분화하지만 복잡성을 추가하는 비용으로 스트림 처리를 제어하기 위해 Custom
names.stream().forEach(name -> {
    if (name.equals("Bob")) {
        break; // 编译错误
    }
});
로그인 후 복사
를 사용하십시오.

올바른 메소드를 선택하십시오

단순성 :

일찍 종료 해야하는 경우 기존주기 방법이 더 간단합니다.
    기능적 스타일 :
  • 기능적 프로그래밍 패러다임에서 벗어나고 싶지 않다면 , (java 9) 메소드가 더 적절할 수 있습니다. 성능 : 특히 큰 데이터 세트로 작업 할 때 각 방법의 성능 영향을 고려해야합니다.
  • 결론 Java 8 Stream의 메소드는 전통적인 루프와 마찬가지로 또는 anyMatch를 사용할 수 없지만이 제한을 우회하는 몇 가지 방법이 있습니다. 이러한 방법을 이해하면 실제 상황에 따라 최상의 옵션을 선택하는 데 도움이됩니다. noneMatch

위 내용은 Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿