我正在尝试浏览一个姓氏列表,我需要一个名字的所有位置。
让我说我有一个清单
List<String> surname=new ArrayList<String>();
我正在尝试获取列表中“史密斯”的索引。
我可以为此使用indexOf,但是如果有多个Smith,则我只会得到第一个包含Smith的索引。
surname.indexOf("Smith")
有没有办法获得史密斯在列表中的所有职位?
答案 0 :(得分:1)
您基本上必须遍历列表并收集索引。
这是使用流的一种方法。
List<Integer> indices = IntStream.range(0, surname.size())
.filter(idx -> surname.get(idx).equals("Smith"))
.boxed()
.collect(Collectors.toList());