1. 程式人生 > >集合——list簡單總結

集合——list簡單總結

style list 刪除 link 數據 排隊 http arr es2017

一.介紹list

1.什麽是list?

list是一個有序的序列(collection),它是一個接口,繼承了collection,因此了除了包含父類的方法以外,還有專屬的方法。

list有三個子類,分別是:ArrayList、linkedlist、vector。

2.list與數組有什麽區別呢?

從操作角度:

數組查詢快,增刪慢。

list增刪快,查詢慢。

從存儲類型:

數組只能存儲1種類型(基本類型引用類型),而list可以存儲多種類型(基本類型引用類型)。

二.介紹棧和隊列

棧的特點:先進後出,查詢快,增刪滿

舉例:彈夾

分析圖:

技術分享

棧操作數據時,通過地址值獲取內存數據。

隊列特點:先進先出,增刪快,查詢慢

舉例:排隊

分析圖:

技術分享

三.數組與鏈表存儲方式

數組的存儲

技術分享

查詢33這個元素,直接數組名[索引],即:array[1]就能得到33這個元素

刪除33

1.33前的元素,不變

2.33這個元素,不存儲

3.33後的把以前的位置-1,存到新數組中。麻煩

鏈表:由一個鏈子將多個節點連起組成的數據。

節點包括:數據和地址組成(指針域和數據域)

內存圖:

技術分享

四.List三個子類的區別和應用場景

Vector:底層是數組,查詢快,增刪慢

Arraylist:底層是數組,查詢塊,增刪慢

LinkedList:底層是鏈表,查詢慢,增刪快

效率:

Vector:線程同步(安全),效率低

ArrayList:線程不同步(不安全),效率高

它用來代替Vector的。

LinkedList:線程不安全,效率高

集合——list簡單總結