我正在看一些代碼,並且我遇到了這個叫做ArrayLists的東西?使用ArrayLists反對常規列表到底是什麼?如果你看代碼,在方法名稱前你有<T> ArrayList<T>
。是因爲這些是ArrayLists
?爲什麼<T>
?ArrayLists的要點是什麼?
class MergeAlgorithm{
//ArrayLists
<T> ArrayList<T> merge(ArrayList<T> list1, ArrayList<T> list2,
Comparator<T> comp, ArrayList<T> acc){
if(list1.isEmpty())
return append(acc, list2);
else if(list2.isEmpty())
return append(acc, list1);
else if(comp.compare(list1.get(0), list2.get(0)) <= 0){
acc.add(list1.get(0));
list1.remove(0);
return merge(list1, list2, comp, acc);
}
else{
acc.add(list2.get(0));
list2.remove(0);
return merge(list1, list2, comp, acc);
}
}
<T> ArrayList<T> append(ArrayList<T> list1, ArrayList<T> list2){
for (T t: list2){
list1.add(t);
}
return list1;
}
}
class CharComp implements Comparator<Character>{
public int compare(Character c1, Character c2){
return c1.compareTo(c2);
}
}
'ArrayList'只是'List'接口的一個實現;因此它可以被看作是一個「常規列表」,因爲它是這個接口最常用的實現('List list = new ArrayList <>();') –
fge
您需要了解Java泛型。你有,所以你可以有強類型檢查任何類型的對象列表。 –
duffymo