当前位置: 首页 > 知识库问答 >
问题:

流筛选和检索列表中项目的索引[重复]

宇文和昶
2023-03-14

有什么快速的方法可以过滤列表并获得值的索引吗?

Optional<model> allocated = data.stream().filter(p => "p".equals(p.getType())).findAny();

我想拿到我找到的东西的索引?

共有1个答案

郎喜
2023-03-14

IntStream需要用于迭代索引:

int indexOf = IntStream.range(0, data.size())
    .filter(i -> "p".equals(data.get(i).getType()))
    .findFirst()
    .orElse(-1);

更新

可能值得实现一个泛型实用工具方法,该方法允许搜索对象中特定字段的值,包括null:

public static <T, V> int indexOf(
    V value, List<T> list, Function<T, V> getter
) {
    return IntStream.range(0, list.size())
             .filter(i -> Objects.nonNull(list.get(i)))
             .filter(i -> Objects.equals(
                     value, getter.apply(list.get(i))
             ))
             .findFirst()
             .orElse(-1); 
}
 类似资料:
  • 本文向大家介绍sharepoint项目。从列表中检索项目,包括了sharepoint项目。从列表中检索项目的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 我目前正在重构一个用Symfony 3编写的应用程序,并且严重依赖ORM,我一直在尝试获取一个包含所选列索引的对象/数组。 现在我对PHP PDO相当熟悉,我记得查询结果的基本获取如下所示 (根据我的查询)它会给我一个类似于下面的数组 在理论方面,我尝试使用几个具有水合参数的内置函数 运气不好,我最后得到了这样的东西 有人能帮我或者给我指出正确的方向吗?如何正确地解决这个问题? ----更新了问题

  • 问题内容: 我有一个清单清单: 搜索列表并返回其中一项的位置的最干净方法是什么? 我已经看过该方法,但是似乎并没有在列表中解压缩列表。 给出:,不是我所期望的… 问题答案: 我会做这样的事情: 这将返回一个元组列表,其中第一个索引是第一个列表中的位置,第二个索引是第二个列表中的位置(注意:您要查找的颜色,即)。 对于问题中的示例,返回值为: 如果您只需要懒惰地找到找到颜色的第一个位置,则可以使用以

  • 我试图过滤initialItems中索引小于当前项的所有项。例如,如果名称是CM,我需要将QS、IT和AB显示在可拖动的下拉菜单中。然而,我一直在讨论如何使用filter和findIndex javascript函数来执行此操作。 带过滤功能的代码: 安慰initialItems的日志对象:

  • 本文向大家介绍Visual Basic .NET从列表中检索项目,包括了Visual Basic .NET从列表中检索项目的使用技巧和注意事项,需要的朋友参考一下 示例 output: 你好,世界 如果您不知道项目的索引或仅了解字符串的一部分,请使用Find或FindAll方法 output: 你好,世界 该的FindAll方法返回一个新的列表(字符串) 输出=“您好,测试” output(1)=

  • 问题内容: 使用Java Stream时,映射后有时会出现空值。当前,当这些值需要省略时,我使用: 对于更实用的样式,可以快速编写一个小的辅助方法: 这样您就可以使用方法引用了: 我找不到这样的jdk方法,即使我怀疑它们中已经包含了一种。这里有其他方法吗?还是他们出于某种原因忽略了这一点? 问题答案: 您可以从Java8 SDK 使用Objects :: nonNull :