1. 程式人生 > >JDK 1.8集合框架 Map、Set、List、Queue、Stack比較

JDK 1.8集合框架 Map、Set、List、Queue、Stack比較

JDK 1.8集合框架基本架構圖

這裡寫圖片描述

比較

元件 比較
Map 1、Map是鍵值對,使用雜湊對映,鍵不能重複,值可以重複。 2、TreeMap可以排列順序,HashMap為無序的。 3、Map中可以將Key和Value單獨抽取出來,其中KeySet()方法可以將所有的keys抽取正一個Set。而Values()方法可以將map中所有的values抽取成一個集合。
Set 1、不重複元素的集合,set中最多包含一個null元素 2、只能用Lterator實現單項遍歷,Set中沒有同步方法。
List 1、有序的可重複集合。 2、可以在任意位置增加刪除元素。 3、用Iterator實現單向遍歷,也可用ListIterator實現雙向遍歷
Queue 1、Queue遵從先進先出原則。 2、使用時儘量避免add()和remove()方法,而是使用offer()來新增元素,使用poll()來移除元素,它的優點是可以通過返回值來判斷是否成功。 3、LinkedList實現了Queue介面。 4、Queue通常不允許插入null元素。
Stack 1、Stack遵從後進先出原則。 2、Stack繼承自Vector。 3、它通過五個操作對類Vector進行擴充套件,允許將向量視為堆疊,它提供了通常的push和pop操作,以及取堆疊頂點的peek()方法、測試堆疊是否為空的empty方法等

注:
雜湊對映結構

由一個儲存元素的內部陣列組成。由於內部採用陣列儲存,因此必然存在一個用於確定任意鍵訪問陣列的索引機制。實際上,該機制需要提供一個小於陣列大小的整數索引值。該機制稱作雜湊函式

用法:
如果涉及堆疊,佇列等操作,建議使用List
對於快速插入和刪除元素的,建議使用LinkedList
如果需要快速隨機訪問元素的,建議使用ArrayList