是否有内置方法来搜索 java.util.List 指定开始搜索的第一项?就像你可以用字符串做的一样
我知道我可以很容易地自己实现一些东西,但如果是 Java 或http://commons.apache.org/collections/api-release/org/apache/commons/collections/package-summary,我宁愿不重新发明轮子.html已经有了。
我不是在问如何实现这一点,我是在问是否已经有东西可用这里的很多建议都是错误的。
如果有人关心获得正确答案的功劳,请更新您的答案,说没有内置的方法可以做到这一点(如果您确定的话)
这是我想做的
List<String> strings = new ArrayList<String>();
// Add some values to the list here
// Search starting from the 6th item in the list
strings.indexOf("someValue", 5);
现在我正在使用
/**
* This is like List.indexOf(), except that it allows you to specify the index to start the search from
*/
public static int indexOf(List<?> list, Object toFind, int startingIndex) {
for (int index = startingIndex; index < list.size(); index++) {
Object current = list.get(index);
if (current != null && current.equals(toFind)) {
return index;
}
}
return -1;
}
我也将它实现为
public static int indexOf(List<?> list, Object toFind, int startingIndex) {
int index = list.subList(startingIndex).indexOf(toFind);
return index == -1 ? index : index + startingIndex;
}