gpt4 book ai didi

java - 从特定索引开始搜索 java.util.List

转载 作者:行者123 更新时间:2023-12-02 08:13:07 25 4
gpt4 key购买 nike

是否有内置方法来搜索 java.util.List 并指定从其开始搜索的第一项?就像你可以用 Strings 做的那样

我知道我可以轻松地自己实现一些东西,但我宁愿不重新发明轮子,如果 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;
}

最佳答案

不,不是单一方法,而是有一个简单的记录方法,只需 1-2 行代码即可完成此操作。它甚至这么说in the documentation for this method :

strings.subList(5, strings.size()).indexOf("someValue");

可能会在结果中添加 5(如果不是 -1),具体取决于您是否要保留该子列表等:

int result = list.subList(startIndex, list.size()).indexOf(someValue);
return result== -1 ? -1 : result+startIndex;

注意:subList 不会创建一个新的List,只是原始列表的一个 View 。

关于java - 从特定索引开始搜索 java.util.List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com