Java日記 —— 2018年10月22日
## 第一天編輯出來忘發了,今天補上
1、從JDK 7開始,語句
ArrayList <AConcreteType> list = new ArrayList<AConcreteType>();
可以簡化為
ArrayList<AConcreteType> list = new ArrayList<>();
由於使用了稱為型別推導(type inference)特徵,構造方法中不再要求給出具體型別。編譯器可以從變數的宣告中推匯出型別。
2、
陣列和ArrayList之間的異同
操作 陣列 ArrayList 建立 String[ ] a = new String[10] ArrayList list<String> = new ArrayList( ) 訪問元素 a[index] list.get(index) 更新元素 a[index] = "London" list.set(index."London") 返回大小 a.length list.size 新增一個新元素 list.add("London") 插入一個新元素 list.add(index,"London") 刪除一個元素 list.remove(index) 刪除一個元素 list..remove(Object) 刪除所有元素 list.clear()
另外,ArrayList還有一些主要的方法:
clear( ): void 刪除列表中的所有元素
contains(o: Object): boolean 如果該列表包含元素o,則返回true
indexOf(o: Object): int 返回列表中第一個匹配元素的下標
lastindexOf(o: Object): int 返回列表中最後一個匹配元素的下標
isEmpty( ): boolean 如果該列表不包含任何元素,則返回true
一旦建立了一個數組,它的大小就固定了。可以使用java.util.Arrays.sort(array) 方法來對一個數組排序。如果要對一個數組列表排序,使用java.util.Collections.sort(arrayList)方法。
3、假設想建立一個用於儲存整數的ArrayList,可以使用下面程式碼來建立一個列表嗎?
ArrayList<int> listOfIntegers = new ArrayList<>();
答案是不行。這樣行不通,因為儲存在ArrayList中的元素必須是一種物件。不能使用諸如int的基本資料型別來代替一個泛型型別。然而可以建立一個儲存Integer物件的ArrayList,如下所示:
ArrayList<Integer> listOfIntegers = new ArrayList<>();
4、從陣列建立一個數組列表:
String[] array = {"買了","fao冷","歪"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));
Arrays類中的靜態方法asList返回一個列表,該列表傳遞給ArrayList的構造方法用於建立一個ArrayList。
還可以從一個數組列表建立一個物件陣列:
String[] array1 = new String[list.size()];
list.toArray(array1);
呼叫list.toArray(array1)將list中的內容複製的array1中。
摘自:
《Java語言程式設計與資料結構》