如何检查arraylist在android中包含这个特定的单词?

and*_*dev 6 android arraylist

ArrayList<String>在那里添加了3-4个网站名称.比如,http://www.google.com,https ://www.stackoverflow.com等.现在在我的应用程序中,如果我只是输入"谷歌",那么我想比较那个"谷歌"字样ArrayList<String>.

我被困在这里.任何人都可以告诉我如何比较字符串与数组对象?

提前致谢.

Pan*_*mar 5

为此,您需要覆盖实现contains().我给你一个简单的例子.

自定义ArrayList类

public class MyArrayList extends ArrayList<String> {
    private static final long serialVersionUID = 2178228925760279677L;

    @Override
    public boolean contains(Object o) {
        return indexOf(o) >= 0;
    }

    @Override
    public int indexOf(Object o) {
        int size = this.size(); 
        if (o == null) {
            for (int i = 0; i < size ; i++) {
                if (this.get(i) == null) {
                    return i; 
                }
            }
        } else {
           for (int i = 0; i < size ; i++) {
                if (this.get(i).contains(String.valueOf(o))) {
                    return i; 
                }
            }
        }
        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使用

MyArrayList arrayList = new MyArrayList(); 
arrayList.add("http://www.google.com");
arrayList.add("https://www.stackoverflow.com");
arrayList.add("http://pankajchunchun.wordpress.com");

if (arrayList.contains("google")) {
    System.out.println("ArrayList Contains google word");
}

if (arrayList.contains("igoogle")) {
    System.out.println("ArrayList Contains igoogle word");
} else {
    System.out.println("ArrayList does not Contains igoogle word");
}
Run Code Online (Sandbox Code Playgroud)

以下是上述代码示例的输出

ArrayList Contains google word
ArrayList does not Contains igoogle word
Run Code Online (Sandbox Code Playgroud)

有关更多自定义实现,请参阅ArrayList源代码.