Java菜雞的學習日常——List(一)
阿新 • • 發佈:2021-03-18
有什麼想說的,我一般都直接打在程式碼塊裡了,中間可能夾雜著一些其他的東西
public class MyList_1 {
//List是一個介面,它有三種實現形式:ArrayList、LinkedList和Vector
//List繼承於Collection的介面。它代表著有序的佇列。當我們討論List的時候,一般都和Set作比較。
//1.ArrayList底層是用陣列實現的,可以認為ArrayList是一個可改變大小的陣列。隨著越來越多的元素被新增到ArrayList中,其規模是動態增加的。
//2.LinkedList底層是通過雙向連結串列實現的。所以,LinkedList和ArrayList之前的區別主要就是陣列和連結串列的區別。
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
LinkedList<Integer> linkedList = new LinkedList<Integer>();
//Integer是一個類,在其產生的物件中包裝了一個基本型別 int 的值,該類提供了多個方法
//通過呼叫Integer類的靜態方法可以直接將一個int型整數轉換為相應的二進位制、八進位制以及十六進位制並且返回結果的字串形式
long startTime = System.nanoTime();//System.nanoTime()是基於cpu核心的時鐘週期來計時的,也就是說通過兩次獲取,可以得到一個時間差
for (int i = 0; i < 100000; i++) {
arrayList.add(i);//新增資料
}
long endTime = System.nanoTime();
long duration = endTime - startTime;//獲得過程時間
System.out.println ("ArrayList add: " + duration);//這個值是不確定的(誤差不大),且為納秒級
for (int i = 0; i < 10000; i++) {
arrayList.get(i);//獲取資料(查詢資料)
}
for (int i = 9999; i >=0; i--) {
arrayList.remove(i);//刪除資料
}
//在新增和刪除操作上LinkedList更快,但在查詢速度較慢
}
}
附上執行結果: