Java 使用 lambda 谓词查找列表中元素的索引

标签 java list java-8 indexof

我有一个对象列表,我想查找具有特定属性值的元素的索引。

比如

List<MyObject> objects = // some objects;

int indexOfFirstDVD = someUtils.findIndex(objects, obj -> "DVD".equals(obj.getType()));

我知道用 for 循环编写一个循环很容易,但是有没有任何现有的简单方法可以做到这一点,例如流或任何库实用程序?

最佳答案

您可以使用IntStream来做到这一点

OptionalInt result = IntStream.range(0, objects.size())
                .filter(x -> "DVD".equals(objects.get(x)))
                .findFirst();

if (result.isPresent())
{
   int index = result.getAsInt();
}

关于Java 使用 lambda 谓词查找列表中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61265742/

相关文章:

python - 如何使用 python 根据另一个列表获取列表中的项目计数?

具有可变参数的 Java 方法,可执行操作并打印已知结果

java - 在列表中搜索名称并显示所有匹配项

java - postgres id 生成和 hibernate 的问题

php - 使用php获取不带扩展名的文件和文件名列表

java-8 流 : Are new streams from intermediate operations returned without increase in memory?

Java 8 lambda、Function.identity() 或 t->t

java - 我想简化我的 Java 程序中的事情

java - Eclim - 将 org.eclim.java.run.mainclass 设置为什么?

python - 列表元素的计数器