java - 如何在具有匹配属性的列表中查找元素的索引

标签 java java-8

<分区>

我有一个对象列表 a List<B>结构如下:

class B {
    int x;
    String y;
}

现在我想找到 B 对象 b 的最后一次出现 b.x=1 .我 可以通过简单地运行一个 for 循环并为每个循环更新索引来做到这一点 匹配。但是我不知道如何在 Java 8 中做到这一点。

我看到有 用于 findFirst() 的 Java 8 API和 findAny() , 但没有找到任何东西 类似于查找最后一次出现。

最佳答案

 Optional<B> reduce = list.stream()
            .filter(b -> b.x == 1)
            .reduce((a, b) -> b);

这将采用相同的对象(具有相同的值 x)并返回列表中的下一个对象。

关于java - 如何在具有匹配属性的列表中查找元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51381435/

相关文章:

Java/JVM : call native C method using it's address and signature

java - Bootstrap Popover 的 Selenium ElementNotVisibleException

Java 8 : get average of more than one attribute

java - 使用派生的 AbstractSingleBeanDefinitionParser 或其他方法在 BeanPostProcessor 中配置类

java - POST 调用接受 x-www-form-urlencoded 但拒绝 JSON

java - 谷歌地图显示空白屏幕,左下角有 'Google' 标志

java - 测试非空字段的更好方法

java - 如何使用 Hibernate 将 java.time.LocalDateTime 映射到 H2 数据库中的 TIMESTAMP?

java - UnsupportedOperationException - 为什么不能在 java.sql.Date 上调用 toInstant()?

java - 基于 Java 8 中的属性从对象列表中删除重复项