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();
}
我有一个对象列表,我想找到具有特定属性值的元素的索引。
比如
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();
}