arrayL.add(arrayList.getA());
應該arrayL.addAll(arrayList.getA());
更改像下面
ArrayListMain arrayList=new ArrayListMain();
ArrayList arrayL=new ArrayList();
arrayList.demo();
arrayL.addAll(arrayList.getA());
^___here is the change
ArrayList中沒有實現Comparable接口的代碼。
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable{
}
Collections.sort();將根據Comparable intefface的compareTo方法進行排序。
public interface Comparable<T> {
public int compareTo(T o);
}
查看String類的語法並實現了Comparable接口。
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence
{
public int compareTo(String anotherString) {
}
}
arrayL.add(arrayList.getA());
等於
ArrayList<String> a= new ArrayList<String>();
a.add("A");
a.add("B");
a.add("C");
a.add("D");
arrayL.add(a);
arrayL包含一個ArrayList對象和其沒有實現可比接口所以它不能排序(添加的ArrayList本身arrayL)。
arrayL.addAll(arrayList.getA());
等於
ArrayList<String> a= new ArrayList<String>();
a.add("A");
a.add("B");
a.add("C");
a.add("D");
arrayL.addAll(a);
arrayL包含一個4字符串對象和其實現的可比接口所以它能夠分揀(添加的ArrayList值arrayL)。
ArrayList的是收藏,爲什麼你需要排序ArrayList? – Masudul
你知道你想排序的數組列表包含另一個數組列表嗎? – SudoRahul
ArrayListMain中的ArrayList是如何進行比較的? 'ArrayLists'並不是自然可比的。您應該添加參數括號,以便您可以看到您正在嘗試執行的操作。 –