JAVA集合框架
⑴ java集合框架的知識總結
說明:先從整體介紹了Java集合框架包含的介面和類,然後雲南IT培訓http://www.kmbdqn.cn/總結了集合框架中的一些基本知識和關鍵點,並結合實例進行簡單分析。
1、綜述
所有集合類都位於java.util包下。集合中只能保存對象(保存對象的引用變數)。(數組既可以保存基本類型的數據也可以保存對象)。
當我們把一個對象放入集合中後,系統會把所有集合元素都當成Object類的實例進行處理。從JDK1.5以後,這種狀態得到了改進:可以使用泛型來限制集合里元素的類型,並讓集合記住所有集合元素的類型(參見具體泛型的內容)。
Java的集合類主要由兩個介面派生而出:Collection和Map,Collection和Map是Java集合框架的根介面,這兩個介面又包含了一些介面或實現類。
Set、List和Map可以看做集合的三大類。
List集合是有序集合,集合中的元素可以重復,訪問集合中的元素可以根據元素的索引來訪問。
Set集合是無序集合,集合中的元素不可以重復,訪問集合中的元素只能根據元素本身來訪問(也是不能集合里元素不允許重復的原因)。
Map集合中保存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。
對於Set、List和Map三種集合,最常用的實現類分別是HashSet、ArrayList和HashMap三個實現類。(並發控制的集合類,以後有空研究下)。
2、Collection介面
Collection介面是List、Set和Queue介面的父介面,同時可以操作這三個介面。
Collection介面定義操作集合元素的具體方法大家可以參考API文檔,這里通過一個例子來說明Collection的添加元素、刪除元素、返回集合中元素的個數以及清空集合元素的方法。
3、兩種遍歷集合的方法Iterator介面和foreach循環1、Iterator介面
Iterator也是Java集合框架的成員,主要用於遍歷(即迭代訪問)Collection集合中的元素,也稱為迭代器。
⑵ JAVA集合框架的總結
1.數組把對象和數字形式的下標聯系起來。它持有的是類型確定的對象,這樣提取對象的時候就不用再作類型傳遞了。它可以是多維的,也可以持有primitive。但是創建之後它的容量不能改了。
2.Collection持有單個元素,而Map持有相關聯的pair。
3.和數組一樣,List也把數字下標同對象聯系起來,你可以把數組和List想成有序的容器。List會隨元素的增加自動調整容量。但是List只能持有Objectreference,所以不能存放primitive,而且把Object提取出來之後,還要做類型傳遞。
4.如果要做很多隨機訪問,那麼請用ArrayList,但是如果要再List的中間做很多插入和刪除的話,就應該用LinkedList了。
5.LinkedList能提供隊列,雙向隊列和棧的功能。
6.Map提供的不是對象與數組的關聯,而是對象和對象的關聯。
HashMap看重的是訪問速度,而TreeMap看重鍵的順序,因而它不如HashMap那麼快。而LinkedHashMap則保持對象插入的順序,但是也可以用LRU演算法為它重新排序。
7.Set只接受不重復的對象。HashSet提供了最快的查詢速度。而TreeSet則保持元素有序。LinkedHashSet保持元素的插入順序。
8.沒必要再在新代碼里使用舊類庫留下來的Vector,Hashtable和Stack了。
容器類庫是你每天都會用到的工具,它能使程序更簡潔,更強大並且更高效。
隨著Java的進一步完善,它的功能和易用性也得到提高,我有理由相信Java在計算機語言中所佔的位置也會更加牢固,讓喜愛Java的人更加喜愛它。祝願Java一路順風!
⑶ java的集合框架是什麼意思
Java,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平台的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容:對外的介面、介面的實現和對集合運算的演算法。
⑷ Java中最常用的集合類框架
一、HashMap的概述
HashMap可以說是Java中最常用的集合類框架之一,是Java語言中非常典型的數據結構。
HashMap是基於哈希表的Map介面實現的,此實現提供所有可選的映射操作。昆明電腦培訓http://www.kmbdqn.cn/發現存儲的是對的映射,允許多個null值和一個null鍵。但此類不保證映射的順序,特別是它不保證該順序恆久不變。
除了HashMap是非同步以及允許使用null外,HashMap類與Hashtable大致相同。
此實現假定哈希函數將元素適當地分布在各桶之間,可為基本操作(get和put)提供穩定的性能。迭代collection視圖所需的時間與HashMap實例的「容量」(桶的數量)及其大小(鍵-值映射關系數)成比例。所以,如果迭代性能很重要,則不要將初始容量設置得太高(或將載入因子設置得太低)。
HashMap的實例有兩個參數影響其性能:初始容量和載入因子。容量是哈希表中桶的數量,初始容量只是哈希表在創建時的容量。載入因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數超出了載入因子與當前容量的乘積時,則要對該哈希表進行rehash操作(即重建內部數據結構),從而哈希表將具有大約兩倍的桶數。
通常,默認載入因子(0.75)在時間和空間成本上尋求一種折衷。載入因子過高雖然減少了空間開銷,但同時也增加了查詢成本(在大多數HashMap類的操作中,包括get和put操作,都反映了這一點)。在設置初始容量時應該考慮到映射中所需的條目數及其載入因子,以便最大限度地減少rehash操作次數。如果初始容量大於最大條目數除以載入因子,則不會發生rehash操作。
注意,此實現不是同步的。如果多個線程同時訪問一個HashMap實例,而其中至少一個線程從結構上修改了列表,那麼它必須保持外部同步。這通常是通過同步那些用來封裝列表的對象來實現的。但如果沒有這樣的對象存在,則應該使用{@linkCollections#synchronizedMapCollections.synchronizedMap}來進行「包裝」,該方法最好是在創建時完成,為了避免對映射進行意外的非同步操作。
Mapm=Collections.synchronizedMap(newHashMap(...));
二、構造函數
HashMap提供了三個構造函數:
HashMap():構造一個具有默認初始容量(16)和默認載入因子(0.75)的空HashMap。
HashMap(intinitialCapacity):構造一個帶指定初始容量和默認載入因子(0.75)的空HashMap。
HashMap(intinitialCapacity,floatloadFactor):構造一個帶指定初始容量和載入因子的空HashMap。
這里提到了兩個參數:初始容量,載入因子。這兩個參數是影響HashMap性能的重要參數,其中容量表示哈希表中桶的數量,初始容量是創建哈希表時的容量,載入因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度,它衡量的是一個散列表的空間的使用程度,負載因子越大表示散列表的裝填程度越高,反之愈小。對於使用鏈表法的散列表來說,查找一個元素的平均時間是O(1+a),因此如果負載因子越大,對空間的利用更充分,然而後果是查找效率的降低;如果負載因子太小,那麼散列表的數據將過於稀疏,對空間造成嚴重浪費。系統默認負載因子為0.75,一般情況下我們是無需修改的。
HashMap是一種支持快速存取的數據結構,要了解它的性能必須要了解它的數據結構。
⑸ 簡敘java的集合框架,常見集合的特點有哪些
集合主要有Collection和Map介面。
List特點:元素有放入順序,元素可重復
Map特點:元素按鍵值對存儲,無放入順序
Set特點:元素無放入順序,元素不可重復(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的)
List介面有三個實現類:LinkedList,ArrayList,Vector
LinkedList:底層基於鏈表實現,鏈表內存是散亂的,每一個元素存儲本身內存地址的同時還存儲下一個元素的地址。鏈表增刪快,查找慢
ArrayList和Vector的區別:ArrayList是非線程安全的,效率高;Vector是基於線程安全的,效率低
Set介面有兩個實現類:HashSet(底層由HashMap實現),LinkedHashSet
SortedSet介面有一個實現類:TreeSet(底層由平衡二叉樹實現)
Query介面有一個實現類:LinkList
Map介面有三個實現類:HashMap,HashTable,LinkeHashMap
HashMap非線程安全,高效,支持null;HashTable線程安全,低效,不支持null
SortedMap有一個實現類:TreeMap
其實最主要的是,list是用來處理序列的,而set是用來處理集的。Map是知道的,存儲的是鍵值對
set
一般無序不重復.map
kv
結構
list
有序
。
http://blog.csdn.net/vstar283551454/article/details/8682655
有用請採納,謝謝
⑹ java常見的集合框架有哪些!
springmvc+spring+hibernate/mybatis+jqueryui/bootstrap/easyui
struts+spring+hibernate/mybatis+jqueryui/bootstrap/easyui
ejb+jpa+hibernate/mybatis+jqueryui/bootstrap/easyui
springboot +hibernate/mybatis+jqueryui/bootstrap/easyui
目前用過的就這么多吧。
⑺ JAVA集合框架的介紹
Java,是由Sun公司於1995年推出的編程語言。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。集合框架是為表示和操作集合而規定的一種統一的標準的體系結構。任何集合框架都包含三大塊內容:對外的介面、介面的實現和對集合運算的演算法。
⑻ Java集合框架的優點是什麼
集合框架的部分優點如下:
(1)使用核心集合類降低開發成本,而非實現我們自己的集合類。
(2)隨著使用經過嚴格測試的集合框架類,代碼質量會得到提高。
(3)通過使用JDK附帶的集合類,可以降低代碼維護成本。
(4)復用性和可操作性。
⑼ 昆明電腦培訓分享Java中最常用的集合類框架
一、HashMap的概述
HashMap可以說是Java中最常用的集合類框架之一,是Java語言中非常典型的數據結構。
HashMap是基於哈希表的Map介面實現的,此實現提供所有可選的映射操作。昆明電腦培訓http://www.kmbdqn.com/發現存儲的是對的映射,允許多個null值和一個null鍵。但此類不保證映射的順序,特別是它不保證該順序恆久不變。
除了HashMap是非同步以及允許使用null外,HashMap 類與 Hashtable大致相同。
此實現假定哈希函數將元素適當地分布在各桶之間,可為基本操作(get 和 put)提供穩定的性能。迭代collection 視圖所需的時間與 HashMap 實例的「容量」(桶的數量)及其大小(鍵-值映射關系數)成比例。所以,如果迭代性能很重要,則不要將初始容量設置得太高(或將載入因子設置得太低)。
HashMap 的實例有兩個參數影響其性能:初始容量 和載入因子。容量 是哈希表中桶的數量,初始容量只是哈希表在創建時的容量。載入因子 是哈希表在其容量自動增加之前可以達到多滿的一種尺度。當哈希表中的條目數超出了載入因子與當前容量的乘積時,則要對該哈希表進行 rehash 操作(即重建內部數據結構),從而哈希表將具有大約兩倍的桶數。
通常,默認載入因子 (0.75) 在時間和空間成本上尋求一種折衷。載入因子過高雖然減少了空間開銷,但同時也增加了查詢成本(在大多數 HashMap 類的操作中,包括 get 和 put 操作,都反映了這一點)。在設置初始容量時應該考慮到映射中所需的條目數及其載入因子,以便最大限度地減少 rehash 操作次數。如果初始容量大於最大條目數除以載入因子,則不會發生 rehash 操作。
注意,此實現不是同步的。 如果多個線程同時訪問一個HashMap實例,而其中至少一個線程從結構上修改了列表,那麼它必須保持外部同步。這通常是通過同步那些用來封裝列表的 對象來實現的。但如果沒有這樣的對象存在,則應該使用{@link Collections#synchronizedMap Collections.synchronizedMap}來進行「包裝」,該方法最好是在創建時完成,為了避免對映射進行意外的非同步操作。
Map m = Collections.synchronizedMap(new HashMap(...));
二、構造函數
HashMap提供了三個構造函數:
HashMap():構造一個具有默認初始容量 (16) 和默認載入因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity):構造一個帶指定初始容量和默認載入因子 (0.75) 的空 HashMap。
HashMap(int initialCapacity, float loadFactor):構造一個帶指定初始容量和載入因子的空 HashMap。
這里提到了兩個參數:初始容量,載入因子。這兩個參數是影響HashMap性能的重要參數,其中容量表示哈希表中桶的數量,初始容量是創建哈希表時的容量,載入因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度,它衡量的是一個散列表的空間的使用程度,負載因子越大表示散列表的裝填程度越高,反之愈小。對於使用鏈表法的散列表來說,查找一個元素的平均時間是O(1+a),因此如果負載因子越大,對空間的利用更充分,然而後果是查找效率的降低;如果負載因子太小,那麼散列表的數據將過於稀疏,對空間造成嚴重浪費。系統默認負載因子為0.75,一般情況下我們是無需修改的。
HashMap是一種支持快速存取的數據結構,要了解它的性能必須要了解它的數據結構。
⑽ java集合框架是什麼意思
java集合框架是為表示和操作集合而規定的一種統一的標準的體系結構,任何集合框架都包含三大塊內容,分別是對外的介面、介面的實現和對集合運算的演算法。