เมธอด findAny() ของ Java Stream คืนค่า Optional สำหรับ Element บางตัวใน Stream หรือ Optional.empty() หาก Stream ว่าง Optional เป็น Container Object ที่อาจจะมีหรือไม่มี Non-null Value
ตัวอย่างที่ 1: findAny() กับ List Integer
import java.util.*;
public class Demo {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(10, 20, 30, 40, 50);
Optional<Integer> res = list.stream().findAny();
if (res.isPresent()) {
System.out.println(res.get());
} else {
System.out.println("None!");
}
}
}
ผลลัพธ์
10
ตัวอย่างที่ 2: findAny() กับ List String
import java.util.*;
public class Demo {
public static void main(String[] args) {
List<String> myList = Arrays.asList("Kevin", "Jofra", "Tom", "Chris", "Liam");
Optional<String> res = myList.stream().findAny();
if (res.isPresent()) {
System.out.println(res.get());
} else {
System.out.println("None!");
}
}
}
ผลลัพธ์
Kevin
สรุป: findAny() คืน Element ใด Element หนึ่ง (ไม่รับประกันลำดับ) เหมาะกับ Parallel Stream หากต้องการ Element แรกตามลำดับ ใช้ findFirst() แทน