我有一些DTO的链接哈希列表,其中包含名称(字符串)和isActive(布尔)属性。我需要从头到尾遍历所有这些对象,并检查是否有任何成员在isActive中具有错误的值。当我找到该元素时,需要将其与列表的其余部分切除,并仅返回该元素之前的元素。
我想使用Java流来解决此问题。 我试图通过谓词使用流和过滤器元素来检查元素是否处于活动状态,但这与我想要的逻辑不匹配。正如我所说,我需要找到第一个处于非活动状态的元素,并将其以及列表中的所有内容都剪掉。
如果我们在LinkedHashSet中有这个ElementDto列表<>
0 - name:test, isActive:true
1 - name:test2, isActive:true
2 - name:inActive, isActive:false
3 - name:activeAfterInactive, isActive:true
期望的输出将是包含元素0,1的列表
答案 0 :(得分:4)
以下内容适用于任何有序集合:
elementCollection.stream().takeWhile(el -> el.isActive())...