我创建了一个方法,以这种方式返回列表中元素的第一个出现的索引
public int getOccurrenceIndex(ArrayList<Object> list, Object o){
Object tmp;
for(int i=0; i<list.size(); i++){
tmp=list.get(i);
if(tmp.equals(o)){
return i;
}
}
return -1;
}
我想在不同的arrayList中使用它,例如
ArrayList<Car> carList, Car c
或
ArrayList<Person> personList, Person p
等
没有为每种类型定义单独的方法
有什么建议吗?
答案 0 :(得分:1)
使该方法具有通用性。另外,不要将ArrayList
作为参数,而是使用List
,以便它可以与List
的任何实现一起使用:
public <T> int getOccurrenceIndex(List<T> list, T o){
T tmp;
for(int i=0; i<list.size(); i++){
tmp = list.get(i);
if(tmp.equals(o)){
return i;
}
}
return -1;
}
顺便说一句,你为什么要编写自己的方法,而不是使用ArrayList#indexOf(Object)
方法?
答案 1 :(得分:0)
使用java Generics,现在您可以传递任何类,如下所示:
public <T> int getOccurrenceIndex(ArrayList<T> list, T o){
T tmp;
for(int i=0; i<list.size(); i++){
tmp=list.get(i);
if(tmp.equals(o)){
return i;
}
}
return -1;
}