list集合框架

2021-09-24 23:39:51 字數 3715 閱讀 3870

集合框架的由來:資料多了用物件進行儲存,物件多了用集合來進行儲存。而儲存資料的方式(資料結構)各有不同,所以儲存的容器也就有多種,從而形成了集合框架這一體系

集合的的三種遍歷方式(foreach,迭代器)

collection c=new arraylist<>();

c.add(23);

c.add(22);

c.add(25);

c.add(24);

c.add(35);

增強for迴圈:

for (object object : c)
迭代器是集合所特有的遍歷方式

iterator it= c.iterator();

while(it.hasnext())

}

集合的remover方法和迭代器的remover方法的區別

集合的remover方法會出現乙個併發問題

**如下:

iterator it= c.iterator();//建立迭代器

正確寫法:

iterator it= c.iterator();//建立迭代器

while(it.hasnext())

}

提供arraylist的方法

在其中可看到add(int index,e element) 和 remover(int index) 方法都是帶有乙個int型別的引數,可以看到這類的容器是有下標,可以按照下標去取、刪除…等等的方式去操作容器的元素

list l=new arraylist<>();

l.add(18);

l.add(21);

l.add(26);

l.add(28);

l.add(33);

再來乙個迭代器

iterator it=l.iterator();

while(it.hasnext())

執行結果arraylist是由下標的

這個是從上往下便利和從下往上遍歷:

listiterator it=l.listiterator();

while(it.hasnext()

) system.out.println("-------");

while(it.hasprevious())

執行結果:

必須要從上往下遍歷了才能從下往上遍歷,

否則執行會沒有東西出來

3.1具體物件的特點

list的三個子類的特點:

①arraylist:

陣列結構 增刪慢,查詢快 有連續下標 執行緒不同步 增長因子為1.5 10

② vector:

陣列結構 增刪改查都慢 有連續下標 執行緒同步 增長因子2 10

vector相對arraylist查詢慢(執行緒安全的)

vector相對linkedlist增刪慢(陣列結構)

③linkedlist:

鍊錶結構 增刪快,查詢慢 沒有連續下標

3.2增長因子論證

在主方法中寫入如下**:

arraylist al=new arraylist<>(50);

for (int i = 0; i < 80; i++)

在主方法外面寫乙個方法:

public static void getlen(arraylist al)  catch (nosuchfieldexception e)  catch (securityexception e)  catch (illegalargumentexception e)  catch (illegalacces***ception e) 

}}

1.通過linkedlist集合來製作乙個堆疊結構的容器

2. 獲取製作乙個佇列製作的結構的容器,

先理解linkedlist集合

**如下:

class duizhan  

public object pop()

public void bianli()

}}

**如下:

duilie dl=new duilie();

dl.push(「a」);

dl.push(「b」);

dl.push(「c」);

dl.push(「d」);

dl.push(「e」);

dl.bianli();

再寫乙個方法:

class duilie

public object pop()

public void bianli()

}}

元素是字串

**如下:

public static void main(string args) 

再定義乙個方法:

public static arraylist repeat(arraylist al)

} return newal;

}}

元素是自定義物件

**如下:

public static void main(string args)
在定義乙個方法:

class person

public void setname(string name)

public int getage()

public void setage(int age)

@override

public string tostring()

public person(string name, int age)

public person()

@override

public boolean equals(object obj)

}

list 集合框架

集合框架中提供了乙個內部類專門操作集合中的元素,這個內部類就是迭代器 資料結構 集合框架的由來 資料多了用物件進行儲存,物件多了用集合來進行儲存。而儲存資料的方式 資料結構 各有不同,所以儲存的容器也就有多種,從而形成了集合框架這一體系。集合父類 list介面 集合子類 arraylist vect...

集合框架 List

list arraylis 以陣列為底層,記憶體分配連續的記憶體空間,遍歷與訪問的效率高 建立arraylist物件進行一系列的操作 不指定型別建立 arraylist arraylist new arraylist 指定型別建立 arraylist new arraylist 構造方法可以指定建立...

Java 集合框架 List 集合

arraylist,linkedlist,vector,stack是list的4個實現類。arraylist 是乙個陣列佇列,相當於動態陣列。它由陣列實現,隨機訪問效率高,隨機插入 隨機刪除效率低。linkedlist 是乙個雙向鍊錶。它也可以被當作堆疊 佇列或雙端佇列進行操作。linkedlist...