Java流从集合中获取单个元素

标签 java java-stream

我正在使用非流方式从集合中获取单个元素。

List<MyCustomClass> list = OtherObject.getMyList();

if (list.size() != 1) {
throw new RuntimeException();
}

MyCustomClass customClass = list.get(0);

除了这种多线方法之外,还有其他方法可以通过流来实现这一点吗?

最佳答案

您可以使用reduce(accumulator)orElseThrow(exceptionSupplier)以确保流恰好产生一个结果。

MyCustomClass customClass = list.stream()
        .reduce((a,b) -> { throw new RuntimeException("Too many values present"); })
        .orElseThrow(() -> { throw new RuntimeException("No value present"); });

关于Java流从集合中获取单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61151206/

相关文章:

java - (Java) Jtable 操作和异常

java - Google Play 服务移动广告需要 AdMob 帐户

Java Parallel Stream 总是记录相同的 threadID

java - Hibernate和Mysql对象不刷新时间戳列

java - 使用 firebase recyclerview 始终返回最后一个值

java - 如何获取二维数组的行和并按从高到低的顺序排列?

java - 使用 STREAM API 在两个 HashMap 之间执行操作

java - 在 java Stream API 中中间操作延迟执行而终端操作急切执行是什么意思?

要映射的 Java 8 int 数组

java - 嵌套 For 循环转换为 Lambda 和 Map 比较