我有一个可能很简单的问题,但是我找不到答案。
我希望能够获取对象在列表中出现的所有索引,但无需在列表上循环。
public void exampleFunction(){
ArrayList<Integer> completeList = new ArrayList<>();
completeList.add(1);
completeList.add(2);
completeList.add(1);
Integer searchObject = 1;
List<Integer> indexes = DO SOMETHING TO GET THE INDEXES LIST [0, 2];
}
最佳答案
您可以使用Stream
API,方法是创建一个具有所有IntStream
索引的completeList
,然后过滤掉未找到1
的索引:
List<Integer> indexList = IntStream.range(0, completeList.size())
.filter(x -> completeList.get(x) == 1)
.collect(Collectors.toList());