java - 如果在 for-each-loop 到 Stream
问题描述
我正在尝试将以下代码放入流中:
for (Engine engine : engines) {
if (engine.getId().equals(rollingStockId)) {
return engine;
}
}
for (TrainSet trainSet : trainSets) {
if (trainSet.getId().equals(rollingStockId)) {
return trainSet;
}
}
throw new LogicException("there is no train-set or engine with ID "+ rollingStockId);
我已经尝试过return engines.stream().filter(engine -> engine.getId().equals(rollingStockId);
和其他一些变化,但它们都不起作用。我对 Stream API 比较陌生。这甚至可能或有用吗?
解决方案
你在正确的轨道上。先调用stream()
然后filter
再findFirst()
调用Optional<T>.get()
。喜欢,
return engines.stream()
.filter(engine -> engine.getId().equals(rollingStockId))
.findFirst()
.get(); // <-- but better to return the Optional type.
推荐阅读
- javascript - 将 Vuejs 单文件组件中的模板导入为外部 HTML 文件
- python - 将默认命名空间与 lxml 一起使用时缺少属性命名空间
- kubernetes - 挂载 ConfigMap 从 MySQL my.cnf 文件中删除旧数据
- javascript - 与上一个和下一个输入字段进行比较
- docker - Can I enable docker swarm when I have an docker running existing containers?
- android - 错误:“尝试在空对象引用上调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()'”
- excel - 如何遍历 Excel 中的报表参数列表并使用 VBA 自动将报表服务器报表生成为 .PDF?
- python-3.x - pip install netifaces 给我一个错误(Windows 10)
- scala - 如何计算流数据集中数组字段中元素的数量(一个除外)?
- java - 具有多个具有相同自定义数据类型的成员的实体