Java集合框架

2021-08-26 11:59:11 字數 2252 閱讀 1541

一,集合的定義

集合跟陣列一樣都是一種容器。

集合,1長度可變,2只能儲存物件,3可以儲存任何型別的物件。

陣列,1,長度固定,2只能儲存基本型別的資料,3同一陣列中只能儲存同一種資料。

注意:1,集合和陣列中存放的都是物件的引用,而不是物件本身。

2,介面不能new,只能實現或繼承介面。例list  ll=new list();這樣就會報錯可以將後面的list改為arraylist就正確了。

集合中的幾個介面collection,map,list,set.

3 ,在集合進行遍歷時,不能再遍歷中進行增刪改查操作,但是在迭代器中可以。

4,list可以放重複的null元素,因為null是物件,

5,arraylist和hashmap在使用時最好初始化大小,減少內部擴容。因為是陣列,所以初始化長度只能是2^n,最小是16,32,

6,hashmap的k可以存放null,但只能存放乙個,因為k不重複。

7,用介面定義功能,用實現功能,這種技術稱為解耦技術(解開耦合),集合正是使用了這種技術。用list等介面定義功能,用arraylist等實現類實現功能。

二,集合的分類及使用

1,collection介面通常不能直接使用,但是該介面提供了新增刪除管理資料的方法,由於list介面和set介面都實現了他的方法,因此這些方法對list和set集合都是通用的。collection中沒有set,get方法,但arraylist中有。

方法如下:

add(element e)                             新增特定物件進集合

remove(object o)                             移除

isempty()-----boolean                          判斷集合是否為空

iterator()------iterator                        返回迭代器用來遍歷集合中的物件

size()--------int                                獲取集合元素的個數,即獲取集合長度

toarray(t[ ] a)                         將集合轉化為陣列,返回引數指定的型別的陣列。

如果無參,返回的是object型別的陣列。

注意:collection的方法addall,containsall,removeall的方法都是集合。

2, list是有序可重複的集合,所以除了繼承collection的方法外,增加了一些根據索引操作集合元素的方法。

1,set(   int index,   e element)注意這裡element是修改後元素的值,但是此方法返回的值是要被修改的值

2,get(int index)   查詢元素,可能下標越界。

3,indexof(object 0)  在集合尋找物件第一次出現的位置,沒有返回-1。

4,lastindexof(object 0)  在集合尋找物件最後一次出現的位置,沒有返回-1。

5,求子集合 listsublist(int fromindex, int toindex) // 不包含toindex

arraylist

底層資料結構是陣列,查詢快,增刪慢

執行緒不安全,效率高

vector

底層資料結構是陣列,查詢快,增刪慢,實現方式與arraylist相同

執行緒安全,效率低

linkedlist

底層資料結構是鍊錶,查詢慢,增刪快(因為只要改變指正所指的位址即可)

執行緒不安全,效率高

三者的區別:

1,初始容量都為10,但arraylist預設增長為原來的50%,原碼採用位運算。而vector預設增長為原來的一倍,並且可以設定

2,對於隨機訪問get和set(查詢操作),arraylist要優於linkedlist,因為linkedlist要移動指標

3,對於增刪操作(addi和remove),linkedlist優於arraylist

3,set無序不可重複

java集合框架

集合框架包括集合與對映 collection and map 以及它們的子類 容器類 1 list 元素有先後次序的集合,元素有index位置,元素可以重複,繼承自collection介面,實現類 arraylist,vector,linkedlist 2 set 元素無續,不能重複新增,是數學意義...

java集合框架

框架 為了解決某一特定的問題,預先設計好的一系列具有繼承或實現關係的類的介面。集合裡的三大類 list直接繼承collection 特點 線性,有序 arraylist底層的實現是陣列 使用範圍 當某一陣列在實際應用中大量使用查詢和新增功能的時候用arraylist linkedlist底層的實現是...

java 集合框架

集合一般使用list,set,map首先說下list 1.list一般使用arraylist,linkedlist list的特點有序,重複,那麼arraylist和linkedlist的區別 arraylist插入和刪除資料慢,取值速度快,實際上arraylist是陣列的擴充 linkedlist...