我需要转换方法“contains()”
public boolean contains(List<Integer> list, int value){
for (int i : list) {
if(i == value)
return true;
进入一个可以搜索每个数据类型的方法,但我真的不知道该怎么做。
import java.util.List;
public class Search<T> {
public boolean contains(List<T> list, T value){
for ( T i : list) {
if(i == value)
return true;
}
return false;
}
}
这是我迄今为止的尝试,但我不知道这是否是我必须做的全部 我希望有人可以帮助我。
答案 0 :(得分:1)
List<T>
中已有一种方法,List<T>::contains
。
如果你想实现自己的,有两种方法可以做到:
如果equals方法没有被覆盖,那么如果它们在内存中实际上是相同的实例,它将返回true
。
public <T> boolean contains(List<T> list, T object){
for( T t : list){
if(t.equals(object))
return true;
}
return false;
}
这里强迫你的T
类实现Comparable
接口,其中包含compareTo(o : Object)
,如果它们相似则会返回0。
public <T extends Comparable> boolean contains(List<T> list, T object){
for( T t : list){
if(t.compareTo(object) == 0)
return true;
}
return false;
}
答案 1 :(得分:0)
尝试使用equals
代替==
import java.util.List;
public class Search<T> {
public boolean contains(List<T> list, T value){
for ( T i : list) {
if(i.equals(value))
return true;
}
return false;
}
}