ArrayList <string> indexof替代项,用于不仅授予所有位置

时间:2019-02-26 11:01:08

标签: java arraylist

我正在尝试浏览一个姓氏列表,我需要一个名字的所有位置。

让我说我有一个清单

List<String> surname=new ArrayList<String>();

我正在尝试获取列表中“史密斯”的索引。

我可以为此使用indexOf,但是如果有多个Smith,则我只会得到第一个包含Smith的索引。

surname.indexOf("Smith")

有没有办法获得史密斯在列表中的所有职位?

1 个答案:

答案 0 :(得分:1)

您基本上必须遍历列表并收集索引。

这是使用流的一种方法。

List<Integer> indices = IntStream.range(0, surname.size())
     .filter(idx -> surname.get(idx).equals("Smith"))
     .boxed()
     .collect(Collectors.toList());