是否通过匹配字符与字符来检查语句list.contains("are")
(已评论过)?
import java.util.*;
class Tester {
public static void main(String args[]) {
String arr[] = {"how","are","you","veena"};
LinkedList<String> list = new LinkedList<String>();
for(String s : arr) {
list.add(s);
}
if(list.contains("are")) { // STATEMENT
System.out.println("Found !");
}
}
}
在此程序中if
语句有效。 contain
方法如何工作?
答案 0 :(得分:2)
该方法遍历链表,并将每个元素与通过调用equals()
方法传递的元素进行比较。在这种情况下,它将调用String#equals(Object)
方法。
答案 1 :(得分:0)
这是来自contains
indexOf
和LinkedList
的实现
public boolean contains(Object o) {
return indexOf(o) != -1;
}
public int indexOf(Object o) {
int index = 0;
if (o == null) {
for (Node<E> x = first; x != null; x = x.next) {
if (x.item == null)
return index;
index++;
}
} else {
for (Node<E> x = first; x != null; x = x.next) {
if (o.equals(x.item))
return index;
index++;
}
}
return -1;
}
因为你看到它正在迭代通过数组直到它找到第一个匹配元素