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訊號來組建臨時的無線區域網,連線到網際網路,供給一臺到...