contains方法如何匹配?

时间:2014-04-10 15:09:43

标签: java string linked-list string-matching

是否通过匹配字符与字符来检查语句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方法如何工作?

2 个答案:

答案 0 :(得分:2)

该方法遍历链表,并将每个元素与通过调用equals()方法传递的元素进行比较。在这种情况下,它将调用String#equals(Object)方法。

答案 1 :(得分:0)

这是来自contains

的方法indexOfLinkedList的实现
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;
    }

因为你看到它正在迭代通过数组直到它找到第一个匹配元素