Java 根据条件从列表中查找索引号
如何在满足条件的列表中查找对象的索引号Java 根据条件从列表中查找索引号,java,Java,如何在满足条件的列表中查找对象的索引号 int index = list.indexOf(list.stream().filter(a-> a.getInfo().getDetails().getIndicator().equals("3"))); list.remove(index) 如果指示符为3,我需要获取索引值。您可以使用IntStream根据索引迭代列表,并获取满足条件对象的索引 IntStream.range(0,list.size())
int index = list.indexOf(list.stream().filter(a-> a.getInfo().getDetails().getIndicator().equals("3")));
list.remove(index)
如果指示符为3,我需要获取索引值。您可以使用
IntStream
根据索引迭代列表,并获取满足条件对象的索引
IntStream.range(0,list.size())
.filter(i->list.get(i).getInfo().getDetails().getIndicator().equals("3"))
.findFirst()
.orElse(-1) // return -1 as default
由于您在问题代码中包含了
list.remove(index)
,如果您想删除满足条件的项目,请不要获取索引,然后按索引删除,只需使用:
list.removeIf(a->a.getInfo().getDetails().getIndicator().equals(“3”);
使用oldschool迭代器,您可以:
- 迭代时删除匹配元素
- 全部删除
for(Iterator<YourType> it=items.iterator();it.hasNext();) { YourType element=it.next(); if(element.getInfo().getDetails().getIndicator().equals("3")) it.remove(); }
for(Iterator it=items.Iterator();it.hasNext();) { YourType元素=it.next(); if(element.getInfo().getDetails().getIndicator().equals(“3”)) it.remove(); }