Java 集合框架 List 集合

2021-08-15 20:31:17 字數 2193 閱讀 4921

arraylist, linkedlist, vector, stack是list的4個實現類。

arraylist 是乙個陣列佇列,相當於動態陣列。它由陣列實現,隨機訪問效率高,隨機插入、隨機刪除效率低。

linkedlist 是乙個雙向鍊錶。它也可以被當作堆疊、佇列或雙端佇列進行操作。linkedlist隨機訪問效率低,但隨機插入、隨機刪除效率低。

vector 是向量佇列,和arraylist一樣,它也是乙個動態陣列,由陣列實現。但是arraylist是非執行緒安全的,而vector是執行緒安全的。

stack 是棧,它繼承於vector。它的特性是:先進後出(filo, first in last out)。

2.list 的使用場景

如果涉及到「棧」、「佇列」、「鍊錶」等操作,應該考慮用list,具體的選擇哪個list,根據下面的標準來取捨。

(01) 對於需要快速插入,刪除元素,應該使用linkedlist。

(02) 對於需要快速隨機訪問元素,應該使用arraylist。

(03) 

對於「單執行緒環境」 或者 「多執行緒環境,但list僅僅只會被單個執行緒操作」,此時應該使用非同步的類(如arraylist)。

對於「多執行緒環境,且list可能同時被多個執行緒操作」,此時,應該使用同步的類(如vector)

示例

public class listcomparetest 

//獲取list 名稱

private static string getlistname(list list) else if (list instanceof arraylist) else if (list instanceof stack) else if (list instanceof vector) else

}//向list的指定位置插入count個元素,並統計時間

private static void insertbyposition(list list)

// 從list的指定位置刪除count個元素,並統計時間

private static void deletebyposition(list list)

// 根據position,不斷從list中讀取元素,並統計時間

private static void readbyposition(list list)

}

stack : insert 10000 elements into the 1st position use time:7 ms

vector : insert 10000 elements into the 1st position use time:8 ms

linkedlist : insert 10000 elements into the 1st position use time:2 ms

arraylist : insert 10000 elements into the 1st position use time:8 ms

stack : read 10000 elements by position use time:1 ms

vector : read 10000 elements by position use time:1 ms

linkedlist : read 10000 elements by position use time:58 ms

arraylist : read 10000 elements by position use time:1 ms

stack : delete 10000 elements from the 1st position use time:9 ms

vector : delete 10000 elements from the 1st position use time:5 ms

linkedlist : delete 10000 elements from the 1st position use time:1 ms

arraylist : delete 10000 elements from the 1st position use time:7 ms

Java 回顧筆記 集合框架 list集合

集合框架 list和set的特點 集合框架 list集合的常見方法 因為list是conllection的子介面 所以具備父類的功能。我們下面只說出他特有的功能即可 集合框架 listiterator介面 只有list有 get 方法 而iterator 是通用的取出方式.使用迭代器 的途中使用集合...

Java中list集合框架

list裡物件 1.vector 內部是陣列資料結構,是同步的,不用了 2.arraylist 內部是陣列資料結果,是不同步的,替代了vector,查詢快 3.linkedlist 內部是鍊錶資料結構,是不同步的,增刪快 linkedlist link new linkedlist link.add...

java 集合框架 之 list

list 介面 常見實現類 arraylist是基於陣列實現的,是乙個陣列佇列。可以動態的增加容量!查詢快 1.增加乙個值 list nums new arraylist nums.add 3 nums.add 5 nums.add 1 nums.add 0 system.out.println n...