我想要按标识符导航到列表.
1-我管理/创建一个列表。
2-我创建函数来从列表中获取标识符元素的下一项
你能帮我修复这个代码吗?
准备清单
List<String> myList = new ArrayList<String>();
myList.add("1");
myList.add("2");
myList.add("3");
myList.add("4");
myList.add("5");
public String function getNext(String uid) {
if (myList.indexOf(uid).hasNext()) {
return myList.indexOf(uid).nextElement();
}
return "";
}
public String function getPrevious(String uid) {
return myList.indexOf(uid).hasPrevious() ? myList.indexOf(uid).previousElement() : "";
}
您可以使用索引来查找字符串,这更快更简单,但是可以实现您拥有的功能。
public String getNext(String uid) {
int idx = myList.indexOf(uid);
if (idx < 0 || idx+1 == myList.size()) return "";
return myList.get(idx + 1);
}
public String getPrevious(String uid) {
int idx = myList.indexOf(uid);
if (idx <= 0) return "";
return myList.get(idx - 1);
}
Using a List.get(i)
is O(1)
这使得保留索引成为最快的选择。List.indexOf(String)
is O(n)
。使用 NavigatbleSet 可能看起来很有吸引力O(log n)
,但是创建对象的成本是如此之高,以至于集合必须相当大才能看到好处。 (在这种情况下,您将使用第一个选项)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)