我正在尝试搜索一个ArrayList
来查找用户输入。我已经成功创建了一个搜索功能,可以打印出列表中第一次出现的索引。
我正在尝试获取该项存储的其余索引,但遇到了困难。
以下是我目前用于打印search
第一个索引的代码:
if (names.contains(search)) {
System.out.println("name found!");
System.out.println(names.indexOf(search));
}
我知道需要添加一个循环。但是我在尝试组织它时遇到了麻烦。
示例
ArrayList<String> names = new ArrayList<String>();
names.add("Bob");
names.add("Jerry");
names.add("Bob");
names.add("Mick");
假设search = "Bob"
。 我期望得到的结果是{0,2}
,但实际上我只能获取到第一次出现的索引(0
)。
assert allIndexesOf(names, "Bob").equals(List.of(0, 2));
[...]
private List<Integer> allIndexesOf(List<?> list, Object o) {
// How can this be implemented?
}
我该如何获取所有与搜索字符串匹配的索引?
indexOf
更适用于列表。 - M. Justin