【发布时间】:2021-10-03 16:40:25
【问题描述】:
我有一个自定义对象 AllData 的列表。我想从这个列表中返回一个匹配特定条件的元素(widgetId = 58)。我将如何使用流/过滤器/集合来返回与我的条件匹配的单个 AllData 对象。我已经尝试了以下方法,但是我得到了 NoSuchElementException.
AppDatabase db = AppDatabase.getDbInstance(MyContext.getContext());
List<AllData> allDataList = db.allDataDao().getAllDataList();
AllData allData = allDataList.stream().findFirst().filter(e -> e.getMyTicker().getWidgetId() == 58).get();
【问题讨论】:
-
您正在调用
findFirst(),它将删除除第一个元素之外的所有元素。这是你想要的吗?getWidgetId()的数据类型是什么?你怎么知道 id 58 存在? -
谢谢,死侍提供的答案正是我想要的。
标签: java filter collections java-stream