java集合架構(1)

1、瞭解集合框
(1) 所謂的框架就是一個類庫的集合。集合框架就是一個用來表示和操作的統一集合的統一架構,它包含了實現集合的接口與類。
(2)集合框架中不同的集合類有各自不同的數據結構,所以在使用中要根據使用的性能要求來選擇不同的集合類
(3)集合類存放在java.util包中,今後進行程序編程時將大量使用集合類和相關接口
2、集合的組成
主要有這些接口組成:
Iterable 迭代器接口
Collection 類集接口
List 列表接口
Set 數據集接口
Queue 隊列
Map 鍵值對組合映射表

3、Iterable接口:
(1)實現該接口允許對象成爲“foreach”語句的目標,即該集合對象允許迭代。
簡單來說就是,一旦一個容器去實現了這個接口,我們就可以通過這個接口中的方法獲取這個
迭代器對象,遍歷訪問數據。
增強for循環 for(int num:array):
(2)類集接口Collection是Iterable的子接口,所以所有類集對象可以迭代訪問,而映射Map不行
4、迭代器對象
方法:Iterator<T>iterator()
功能:返回一個在一組T類型的元素上進行迭代的迭代器
迭代器是實現了Iterator/Listlterator接口的類的對象,可以通過遍歷類集,訪問操作其中的每個元素
Listlterator擴展了了父接口Iterator,允許雙向遍歷集合,並可以修改和刪除元素。
5、Collection接口
List接口擴展了Collection,特點:有序且可重複的
Set接口擴展了Collection,特點:無序且不可重複的
映射(map)是一個存儲關鍵字/值對的對象,給定一個關鍵字。可查詢得到它的值,關鍵字和值都可以是對象。映射不是Collection的子接口,所以本身不能使用迭代器來進行遍歷。
6、List容器
特點:
有序且可重複的元素,通過整數索引來訪問
常用的兩個List接口的實現類
(1)ArrayList(動態數組)
支持課隨需增長的動態數組
ArrayList類擴展AbstractList並實現了List接口
ArrayList構造方法
ArrayList():構造一個初始容量爲10的空列表
ArrayList(Collection <?extends E> c)構造一個包含指定collection的元素的列表,這些元素是按照該collection的迭代器的元素返回的
ArrayList(int capacity)構造一個具有指定初始容量的空列表

使用迭代器來進行統一的遍歷
當我們調用無參數構造方法來構造一個ArrayList對象的時候,它內部分配一個初始大小爲10的一個Object類型數組當添加的數據容量超過數組大小的時候會產生一個新的數據,新的數組大小爲原來數組大小1.5倍,接着把原數組中的數據拷貝到新的數組中

使用增強for循環來進行遍歷


對列表的數據的操作

對對象的操作

(2)LinkedList--鏈表
LinkedList擴展AbstractSequentialList實現List及接口
LinkedList提供了一個鏈表數據結構
有兩個構造方法
無參LinkedList()
有參 LinkedList(Collection c)
LinkedList的內部的數據結構
LinkedList它內部封裝的是雙向鏈表數據結構,每個節點是一個Node對象,Node對象中封裝的添加的元素,還有一個指向上一個Node對象的應用和指向下一個Node對象引用

比較:
不同的容器有不同的數據結構,不同的數據結構操作起來性能是不一樣的。
鏈接數據結構,做插入。刪除的效率比較高,但是 查詢效率比較低
數組結構,它做查詢的時候效率高,因爲可以通過下標直接找到元素但是插入和刪除的效率比較低,因爲要做以爲操作。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章