在Java中,如果你想要在Stream中查找元素,并且如果找不到元素的话抛出异常,你可以使用findFirst或者findAny方法来实现,并结合orElseThrow来抛出异常。以下是一个简单的例子:
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamExample {
public static void main(String[] args) {
List<String> list = Stream.of("apple", "banana", "cherry")
.collect(Collectors.toList());
String result = list.stream()
.filter(s -> s.equals("orange")) // 查找的元素
.findFirst() // 返回Optional
.orElseThrow(() -> new IllegalStateException("Element not found")); // 如果找不到,抛出异常
System.out.println(result);
}
}
如果列表中不存在"orange",则会抛出IllegalStateException异常。你可以根据需要调整orElseThrow中的lambda表达式,以自定义异常类型和消息。