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

Java Find index of element in list with lambda predicate

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

比如

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();
}