java基礎之集合

2021-08-03 14:02:16 字數 2989 閱讀 6438

集合容器因為內部的資料結構不同,有多種具體容器。

不斷的向上抽取,就形成了集合框架。

框架的頂層collection介面:

collection的常見方法:

1.新增:

boolean add(object obj);

boolean addall(collection coll);

2.刪除:

boolean remove(object obj);

boolean removeall(collection coll);

void clear();

3.判斷:

boolean contains(object obj);

boolean containsall(collection coll);

boolean isempty();判斷是否有元素。

4.獲取:

int size();

iterator iterator();//迭代器,專門用於取出集合中的元素。

5.其他:

boolean retainall(collection coll);取交集。

object toarray();將集合轉為陣列。

collection介面有兩個子介面:

list(列表) , set(集)

list:可存放重複元素,元素訪問是有序的。元素都有索引(角標)

set:不可以存放重複元素,元素訪問是無序

的。list特有的常見方法:有乙個共性的特徵就是可以操作角標

1.新增:

void add(index,element);

void add(index,collection);

2.刪除:

object remove(index);

3.修改:

object set(index,element);

4.獲取:

object get(index);

int indexof(object);

int lastindexof(object);

list sublist(from,to);

list介面中常用類:

vector:執行緒安全,但速度慢,已被

arraylist替代。

 arraylist:執行緒不安全,查詢速度快。

 linkedlist:鍊錶結構,增刪速度快。

取出list集合中元素的方式:

• get(int index):通過腳標獲取元素。

• iterator():通過迭代方法獲取迭代器物件。

迭代:

迭代是取出集合中元素的一種方式。

 因為collection中有iterator方法,所以每乙個

子類集合物件都具備迭代器。

 用法:

iterator iter = l.iterator();

while(iter.hasnext())

for(iterator iter = iterator();iter.hasnext(); )

迭代的注意事項:

迭代器在collcection介面中是通用的,它替

代了vector類中的enumeration(列舉)。

 迭代器的next方法是自動向下取元素,要避

免出現nosuchelementexception。

 迭代器的next方法返回值型別是object,所

以要記得型別轉換。

思考:為什麼next方法的返回型別是object的

呢?set介面中常用的類:

hashset:執行緒不安全,訪問速度快。

它是如何保證元素唯一性的呢?

 treeset: 執行緒不安全,可以對set集合中的

元素進行排序。

它的排序是如何進行的呢?

set集合元素唯一性原因

 hashset:通過equals方法和hashcode

方法來保證元素的唯一性。

 treeset:通過compareto或者compare

方法中的來保證元素的唯一

性。元素是以二叉樹的形式存

放的。map與collection

 map與collection在集合框架中屬並列存在

 map儲存的是鍵值對

 map儲存元素使用put方法, collection使用

add方法

 map集合沒有直接取出元素的方法,而是

先轉成set集合,在通過迭代獲取元素

 map集合中鍵要保證唯一性

map集合常用類

 hashtable:執行緒安全,速度慢,不允許存放

null鍵, null值,已被hashmap替代。

 hashmap:執行緒不安全,速度快,允許存放null

鍵, null值。

 treemap:對鍵進行排序,排序原理與treeset

相同。

例程 練習:自定義乙個可以同時存放三元素的map集

合。集合框架中的工具類

 collections

• 對集合進行查詢

• 取出集合中的最大值,最小值

• 對list集合進行排序

• ……

 arrays

• 將陣列轉成list集合

• 對陣列進行排序

• 對陣列進行二分查詢

新增for語句

 collection在jdk1.5後出現的父介面

iterable就是提供了這個for語句。

 格式:

for(資料型別 變數名 : 陣列或集合)

 簡化了對陣列,集合的遍歷。

函式的另一種表現形式

 返回值型別 函式名(引數型別… 形式引數)

 其實接收的是乙個陣列,可以指定實際引數

個數。

java基礎之集合

1.collectiton 單列儲存集合 list 元素是有序的,元素可以重複。因為該集合體系有索引 arraylist 底層的資料結構使用的是陣列結構 特點 陣列元素查詢很快,但是增刪很慢,因為增刪乙個元素,陣列後面的其他元素都需要變動,執行緒不同步 linklist 底層的資料結構使用的是鍊錶資...

java基礎之集合

集合的型別與各自的特性 collection 單列集合 list 有儲存順序,可重複 arraylist 陣列實現,查詢快,增刪慢由於是陣列實現,在增和刪的時候會牽扯到陣列增容,以及拷貝元素,所以慢。陣列是可以直接按索引查詢,所以查詢時較快。linkedlist 鍊錶實現,增刪快,查詢慢由於鍊錶實現...

Java基礎之集合

list 和set 都是conllection 介面的子介面。list 中的元素是有順序的,可以重複的。set中的額元素是沒有順序的,不可以重複的.set是通過hashcode 和equals 比較元素是否重複的。先使用hashcode 方法判斷已經存在 hashset 中元素的 hashcode ...