用于添加我使用的项目
public void add(Object s) {
list.add(s);
}
用于删除我使用的项目
public void remove(Object s) {
list.remove(s);
}
现在,当我使用点运算符并搜索内置 API 时搜索LinkedList
,我没有看到任何建议搜索功能的内容。会不会是contains
?
由于您似乎想知道该项在列表中的位置,以便可以访问找到的实际实例,因此您希望使用 indexOf
来查找它并get
返回找到的实例。没有将两者结合起来的方法。
List list = ...
Object item = ...
int index = list.indexOf(item);
if (index > 0) {
Object found = list.get(index);
...
}
Yes 包含 LinkedList API 中的方法将返回true
如果它包含搜索元素。
是的,对于搜索,您将使用 contains
方法。但是请注意,搜索 LinkedList 需要 O(n) 时间,即时间线性取决于列表的大小,因此如果您的列表很大并且您进行了大量搜索,您将需要使用其他一些数据结构。例如,您可能应该像这样初始化列表:
Collection something = new LinkedList();
然后,如果您发现搜索操作的性能正在损害您的程序,您只需这样做:
Collection something = new LinkedHashSet();
对于更高级的搜索,您应该使用地图而不是列表或任何其他集合,但这是一种完全不同的数据结构。
是的,它contains
.如果你想要更花哨的东西,你必须编写自己的LinkedList
实现或想出一些实用程序函数。
contains(Object)
确实是你要找的。如果列表按升序排序,您也可以使用 Collections.binarysearch(List, T)
。
下面的代码示例会让你理解
// Assuming that we java imported java.util.LinkedList........
LinkedList ll =new LinkedList();
ll.add("red");
ll.add("blue");
ll.get(0); // gets the first element.........
ll.getFirst(); // returns the first element..
ll.getLast(); // returns the last element....
int position = ll.indexOf("red");
boolean status;
status= ll.contains("red"); // returns true if list contains red or returns false....