Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] Stream findAny()와 findFirst()의 차이점 본문
Java Stream API에서 findAny()와 findFirst() 메서드는 스트림에서 요소를 검색하는 데 사용됩니다. 이 두 메서드의 차이점에 대해 살펴보겠습니다.
findAny() 메서드
findAny() 메서드는 병렬 스트림에서 임의의 요소를 반환합니다. 병렬 스트림에서는 요소가 여러 스레드에 의해 병렬로 처리되므로, 요소의 순서가 보장되지 않습니다. 따라서 이 메서드는 주로 요소의 순서에 관계없이 스트림에서 임의의 요소를 찾을 때 사용됩니다.
import java.util.stream.Stream;
public class FindAnyExample {
public static void main(String[] args) {
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
// 병렬 스트림에서 임의의 요소 찾기
Integer anyNumber = stream.parallel().findAny().orElse(null);
System.out.println("Any number: " + anyNumber);
}
}
findFirst() 메서드
findFirst() 메서드는 순차 또는 병렬 스트림에서 첫 번째 요소를 반환합니다. 순차 스트림의 경우에는 첫 번째 요소가 스트림의 시작 부분에서 반환되고, 병렬 스트림의 경우에는 여러 스레드에 의해 동시에 처리되는 요소 중에서 첫 번째 요소가 반환됩니다.
import java.util.stream.Stream;
public class FindFirstExample {
public static void main(String[] args) {
Stream<String> stream = Stream.of("apple", "banana", "cherry", "date", "elderberry");
// 순차 스트림에서 첫 번째 요소 찾기
String firstFruit = stream.findFirst().orElse(null);
System.out.println("First fruit: " + firstFruit);
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] 저장 순서가 유지되는 HashMap (0) | 2024.03.11 |
---|---|
[Java/자바] 문자열을 날짜로 변환 (String -> Date) (0) | 2024.03.11 |
[Java/자바] Collection.parallelStream()으로 병렬 처리하기 (0) | 2024.03.11 |
[Java/자바] Stream을 멀티 쓰레드에서 병렬로 처리하기 (0) | 2024.03.11 |
[Java/자바] Stream을 Single 쓰레드에서 처리하기 (0) | 2024.03.11 |