容器框架 JCF 列表 List

2021-10-17 01:29:11 字數 2674 閱讀 3279

實現優點

缺點適用範圍

特點arraylist

linkedlist

vector

以可變陣列實現的列表,不支援同步

以雙向鍊錶實現的列表,不支援同步

以可變陣列實現的列表,支援同步,適合多執行緒下使用

利用索引位置可以快速定位訪問

順序訪問高效,中間插入和刪除高效

支援多執行緒

指定位置插入、刪除效率低

隨機索引訪問效率低

非同步下優先採用arraylist

適合變動不大、主要用於查詢的資料

適用於經常要變化的資料

適用於多執行緒

容器填滿時自動擴充50%

容器大小隨增刪及時變化

arraylistarraylist=new arraylist<>();

arraylist.add(1);

arraylist.add(2);//新增到末尾

arraylist.add(new integer(5));

arraylist.add(9);//自動裝箱,將int 型別9裝箱為integer

arraylist.add(1,3);//在索引位置為1的地方新增3,即新增元素為第二個元素

arraylist.remove(2);//刪除索引位置為2元素,即刪除第三個元素

「=」進行複製,實際是兩個變數指向同一物件,arraylist2進行刪除或新增,arraylist也會發生相同變化,即兩個指標操作同一物件

arraylistarraylist2=new arraylist<>();

arraylist2=arraylist;

arraylist2.remove(1);

"clone"進行複製,arraylist2指向新產生的物件,互不干擾

arraylistarraylist2=new arraylist<>();

arraylist2=(arraylist) arraylist.clone();

arraylist2.remove(1);

arraylist=(arraylist) arraylist.sublist(1, 3);//原列表第2-4個元素組成的列表

int a=arraylist.indexof(3);//第一次出現的位置

int b=arraylist.lastindexof(3);//最後一次出現的位置

for(integer item:arraylist)

for(int i=0;iiteratoriterator=arraylist.iterator();

while(iterator.hasnext())

linkedlistlinkedlist=new linkedlist<>();

linkedlist.add(1);

linkedlist.add(2);//新增到末尾

linkedlist.add(new integer(5));

linkedlist.add(9);//自動裝箱,將int 型別9裝箱為integer

linkedlist.add(1,3);//在索引位置為1的地方新增3,即新增元素為第二個元素

linkedlist.remove(2);//刪除索引位置為2元素,即刪除第三個元素

linkedlist.remove();//刪除列表頭部元素

「=」進行複製,實際是兩個變數指向同一物件,linkedlist2進行刪除或新增,linkedlist也會發生相同變化,即兩個指標操作同一物件

linkedlistlinkedlist2=new linkedlist<>();

linkedlist2=linkedlist;

linkedlist2.remove(1);

"clone"進行複製,linkedlist2指向新產生的物件,互不干擾

linkedlistlinkedlist2=new linkedlist<>();

linkedlist2=(linkedlist) linkedlist.clone();

linkedlist2.remove(1);

int a=linkedlist.indexof(3);//第一次出現的位置

int b=linkedlist.lastindexof(3);//最後一次出現的位置

for(integer item:linkedlist)

for(int i=0;iiteratoriterator=linkedlist.iterator();

while(iterator.hasnext())

列表容器list

相對於vector來說,list比較複雜,允許插入,刪除,list節點不保證在儲存空間連續存在,所以必須有指向它的節點,它是雙向環狀鍊錶,需要乙個指標,api為 push front x 把元素 x推入 插入 到鍊錶頭部 pop front 彈出 刪除 鍊錶首元素 merge listref 把 l...

Java集合框架(JCF)

框架 為了解決某一問題,而預先設計的一系列具有繼承關係或實現關係的類與介面 集合 1.任意資料型別的元素均可以放入 2.容器可增,可減,數量任意 3.非連續空間 常見的四個類 1.hashset 2.arraylist 3.linkedlist 4.hashmap 核心的介面 i list 特點 線...

Java集合框架(JCF)

集合的由來 1 處理多個相同資料我們採用陣列,但陣列空間固定不能動態增長,插入或刪除元素比較麻煩。我們使用集合來解決這個問題。2 集合特點 元素型別可以不同 集合長度可變 空間不固定。概念 為了解決某乙個特定的問題,預先設計好的一系列具有繼承或者實現關係的類介面。collections arrays...