我ArrayList<String>在那里添加了3-4个网站名称.比如,http://www.google.com,https ://www.stackoverflow.com等.现在在我的应用程序中,如果我只是输入"谷歌",那么我想比较那个"谷歌"字样ArrayList<String>.
我被困在这里.任何人都可以告诉我如何比较字符串与数组对象?
提前致谢.
为此,您需要覆盖实现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源代码.