Arraylist list set的具體功能差別和用法

2022-02-19 22:17:01 字數 3571 閱讀 7313

1樓:匿名使用者

list list = new arraylist();

list 是個介面,定義了方法沒有實現。

arraylist 實現了這個介面裡邊的方法。

list 佇列裡邊的元素是有順序的,可重複的,根據下標可以獲取元素。

set 是個介面,set裡邊的元素是不可重複的,而且沒有指定的順序,就是個集合。

2樓:匿名使用者

list和set都是介面,arraylist是list的一個實現類。具體功能查閱相關api文件就可以了。

j**a中set和list的區別

3樓:西安it優就業

set和list都是集合介面

簡要說明

set --其中的值不允許重複,無序的資料結構

list --其中的值允許重複,因為其為有序的資料結構

list的功能方法

實際上有兩種list:

一種是基本的arraylist,其優點在於隨機訪問元素,另一種是更強大的linkedlist,它並不是為快速隨機訪問設計的,而是具有一套更通用的方法。

list :

次序是list最重要的特點:它保證維護元素特定的順序。list為collection新增了許多方法,使得能夠向list中間插入與移除元素(這隻推薦linkedlist使用。

)一個list可以生成listiterator,使用它可以從兩個方向遍歷list,也可以從list中間插入和移除元素。

arraylist :

由陣列實現的list。允許對元素進行快速隨機訪問,但是向list中間插入與移除元素的速度很慢。listiterator只應該用來由後向前遍歷arraylist,而不是用來插入和移除元素。

因為那比linkedlist開銷要大很多。

linkedlist :

對順序訪問進行了優化,向list中間插入與刪除的開銷並不大。隨機訪問則相對較慢。(使用arraylist代替。)還具有下列方法:addfirst(),

addlast(), getfirst(), getlast(), removefirst() 和removelast(), 這些方法

(沒有在任何介面或基類中定義過)使得linkedlist可以當作堆疊、佇列和雙向佇列使用。

set的功能方法

set具有與collection完全一樣的介面,因此沒有任何額外的功能,不像前面有兩個不同的list。實際上set就是collection,只是行為不同。(這是繼承與多型思想的典型應用:

表現不同的行為。)set不儲存重複的元素(至於如何判斷元素相同則較為負責)

set :

存入set的每個元素都必須是唯一的,因為set不儲存重複元素。加入set的元素必須定義equals()方法以確保物件的唯一性。set與collection有完全一樣的介面。

set介面不保證維護元素的次序。

hashset : 為快速查詢設計的set。存入hashset的物件必須定義hashcode()。

treeset : 儲存次序的set, 底層為樹結構。使用它可以從set中提取有序的序列。

linkedhashset :

具有hashset的查詢速度,且內部使用連結串列維護元素的順序(插入的次序)。於是在使用迭代器遍歷set時,結果會按元素插入的次序顯示。

4樓:匿名使用者

set是不可重複,list可以重複。這是主要差別。

5樓:

set無序不重複。list相反。

6樓:匿名使用者

set無序,list有序

arraylist,linkedlist,set的區別是什麼?

7樓:尚學堂大資料學院

arraylist和linkedlist都實現了list介面,arraylist的實現用的是陣列,linkedlist是基於連結串列,arraylist適合查詢,linkedlist適合增刪。

arraylist與linklist兩者的區別:

arraylist是基於索引的資料介面,它的底層是陣列。它可以以o(1)時間複雜度對元素進行隨機訪問。

相對於arraylist,linkedlist的插入,新增,刪除操作速度更快,因為當元素被新增到集合任意位置的時候,不需要像陣列那樣重新計算大小或者是更新索引。

linkedlist比arraylist更佔記憶體,因為linkedlist為每一個節點儲存了兩個引用,一個指向前一個元素,一個指向下一個元素。

但是要刪除資料卻是開銷很大的,因為這需要重排陣列中的所有資料。

2) 相對於 arraylist , linkedlist 插入是更快的。因為 linkedlist 不像 arraylist 一樣,不需要改變陣列的大小,也不需要在陣列裝滿的時候要將所有的資料重新裝入一個新的陣列,這是 arraylist 最壞的一種情況,時間複雜度是 o(n) ,而 linkedlist 中插入或刪除的時間複雜度僅為 o(1) 。 arraylist 在插入資料時還需要更新索引(除了插入陣列的尾部)。

3) 類似於插入資料,刪除資料時, linkedlist 也優於 arraylist 。

4) linkedlist 需要更多的記憶體,因為 arraylist 的每個索引的位置是實際的資料,而 linkedlist 中的每個節點中儲存的是實際的資料和前後節點的位置 ( 一個 linkedlist 例項儲存了兩個值: nodefirst 和 nodelast 分別表示連結串列的其實節點和尾節點,每個 node 例項儲存了三個值: e item,node next,node pre) 。

什麼場景下更適宜使用 linkedlist,而不用arraylist

1) 你的應用不會隨機訪問資料 。因為如果你需要linkedlist中的第n個元素的時候,你需要從第一個元素順序數到第n個資料,然後讀取資料。

2) 你的應用更多的插入和刪除元素,更少的讀取資料 。因為插入和刪除元素不涉及重排資料,所以它要比arraylist要快。

j**a中 list 與set 的區別

arraylist,linkedlist,hashset等在什麼場景下適用

j**a中list,set和map 的區別

collection根介面的子介面set和list,set的實現類arraylist,這裡的子介面和實現類有什麼區別。

8樓:代作網i站

介面更像是一種規範,沒有具體實現的,

實現類就是實現了這些規範的類,也就是實現了介面裡面的方法,

這是一個最基本的區別

9樓:匿名使用者

介面是實現

類是繼承

實現可以實現多個介面

繼承只能繼承一個

差不多久是這些

具體用法有差異

舉個例子

實現多執行緒

要麼實現runnable介面

要麼繼承thread類

但是如果你繼承了其他類

就只能實現介面啦

chief和leader的差別(具體語境)

leader在表示 首領 這個意思是個很general的詞,它一般既可以指一個group或team或organization或community的頭領,也可以指革命運動的領導人,一個國家領導人等。eg.the prize was awarded to the anc leader nelson ma...

智慧手機和電腦功能有什麼差別,誰功能更強

現在智慧手機本來就是個迷你電腦,和電腦相比,更方便攜帶和使用,只是二者側重點有所不同,智慧手機側重於通話和移動應用,電腦則側重辦公和日常應用。不能簡單地評判哪個功能更強。智慧手機在處理事物時只不過簡單的操作,電腦可以處理複雜的事物!我說電腦更強!當然是電腦 電腦可以玩大型遊戲 智慧手機的程式 沒有電...

隨身wifi的具體功能和原理是什麼

隨身wifi 將網際網路連線轉換成wifi訊號的裝置 就是把寬頻的網路變成無線網,具體原理和路由器差不多 望採納 有一個usb接頭,要插在電腦的usb介面,分享電腦的網路,比路由器方便且簡單。隨身wifi的功能 將沒有wifi的網路共享出wifi訊號來組建臨時的無線區域網,連線到網際網路,供給一臺到...