1. 程式人生 > >Collection和map的區別

Collection和map的區別

Collection:
1、Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)。
  一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。
  Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子介面”如List和Set。
2、所有實現Collection介面的類都必須提供兩個標準的建構函式:無引數的建構函式和有一個Collection引數的建構函式
  其中無引數的建構函式用於建立一個空的Collection;有一個Collection引數的建構函式用於建立一個新的Collection。
List介面:
1、List是有序的Collection,使用此介面能準確的鎖定每個元素的位置,可以通過索引訪問List中的元素,類似於java陣列。
2、List中是允許存在相同的元素的。
3、List除了具有Collection介面必備的iterator()方法外,List還提供一個listIterator()方法,返回一個ListIterator()介面,
  和標準的Iterator介面相比,ListIterator多了一些add()之類的方法,允許新增,刪除,設定元素,還能向前或向後遍歷。
4、實現List介面的常用類有LinkedList,ArrayList,Vector和Stack。
Set介面:
1、Set就一種不包含重複元素的Collection,即任意的兩個元素都不相等,Set最多有一個null元素。


繼承Map的類有HashMap,HashTable
Collection和Map介面之間的主要區別在於:Collection中儲存了一組物件,而Map儲存關鍵字/值對,即。


Map:
1、Map物件中,每一個關鍵字最多有一個關聯的值。
2、不能包括兩個相同的鍵,一個鍵最多能繫結一個值。null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的值為null。
3、當get()方法返回null值時,即可以表示Map中沒有該鍵,也可以表示該鍵所對應的值為null。
  因此,在Map中不能由get()方法來判斷Map中是否存在某個鍵,而應該用containsKey()方法來判斷。
4、Map介面提供3種集合的檢視,Map的內容可以被當作一組key集合,一組value集合,或者一組key-value對映。
HashTable:
1、Dictionary的子類,預設是執行緒同步的。不允許關鍵字或值為null
2、實現一個Key-value對映的雜湊表。任何非空的物件都可以作為key或者value
HashMap:
1、Map的實現類,預設情況下是非同步的,可以通過Map Collections.synchronizedMap(Map m)來達到執行緒同步
2、允許null,即null value和null key。
當元素的順序很重要時選用TreeMap,當元素不必以特定的順序進行儲存時,使用HashMap。
Hashtable的使用不被推薦,因為HashMap提供了所有類似的功能,並且速度更快。
當你需要在多執行緒環境下使用時,HashMap也可以轉換為同步的。


如果涉及到堆疊,佇列等操作,應該考慮用List,對於需要快速插入,刪除元素,應該使用LinkedList,如果需要快速隨機訪問元素,應該使用ArrayList。
如果程式在單執行緒環境中,或者訪問僅僅在一個執行緒中進行,考慮非同步的類,其效率較高,如果多個執行緒可能同時操作一個類,應該使用同步的類。
要特別注意對雜湊表的操作,作為key的物件要正確複寫equals和hashCode方法。
儘量返回介面而非實際的型別,如返回List而非 ArrayList,這樣如果以後需要將ArrayList換成LinkedList時,客戶端程式碼不用改變。這就是針對抽象程式設計。

相關推薦

Collectionmap區別

Collection:1、Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)。  一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。  Java SDK不提供直接繼

12. 集合類CollectionMap

sid 並且 當前 ria static indexof tran alt -i html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,addr

第十一課 集合類CollectionMap

什麽是 基本數據類型 16px 開始 有序 面向對象 style 數據 取出 集合類 面向對象語言對事物的體現都是以對象的形式,所以為了方便對多個對象的操作,就對對象進行存儲,集合就是存儲對象最常用的方式。 數組和集合類都是容器,他們有什麽不同? 數組雖然也可以存儲對象,但

java基礎- Collectionmap

-s http 通用 java基礎 pos cto 構造方法 ont 保存 使用構造方法時,需要保留一個無參的構造方法靜態方法可以直接通過類名來訪問,而不用創建對象。--Java代碼的執行順序:靜態變量初始化→靜態代碼塊→初始化靜態方法→

CollectionMap

Collection List(存取有序,有索引,可以重複) ArrayList LinkedList Vector Set(存取無序,無索引,不可以重複) HashSet

Java基礎 @org.junit.Test-單元測試方法 + 操縱CollectionMap的工具類 : Collections 的sort/binarySearch/max/min等靜態方法

單元測試程式碼:   ( 在IDEA中先輸入'@Test '然後根據提示進行自動修訂即可!!執行時直接執行即可!         若有多個單元測試塊的時候,直接把滑鼠放在哪裡就自動在哪裡執行那個單元塊) import java.util.*; /**操縱Collection和Map

Java集合類根介面:Collection Map

前言 在前文中我們瞭解了幾種常見的資料結構,這些資料結構有著各自的應用場景,並且被廣泛的應用於程式語言中,其中,Java中的集合類就是基於這些資料結構為基礎。 Java的集合類是一些非常實用的工具類,主要用於儲存和裝載資料 (包括物件),因此,Java的集合類也被成為容器。在Java中,所有的集合類都位於

「 深入淺出 」java集合CollectionMap

本系列文章主要對java集合的框架進行一個深入淺出的介紹,使大家對java集合有個深入的理解。 本篇文章主要具體介紹了Collection介面,Map介面以及Collection介面的三個子介面Set,List,Queue。 什麼是集合 Java集合類存放於 jav

java中的集合框架:Collection Map

集合:包含多個元素的物件,又稱容器。 集合框架:一個代表、操作集合的統一架構,所有的集合框架都包含:介面、實現類以及演算法。 **介面:**表示集合的抽象資料型別。介面允許我們操作集合時不必關注具體實現,從而達到“多型”。在面向物件程式語言中,介面通常用來形成規範。 **實現類:**

CollectionMap總結

一、定義    集合框架是為表示和操作集合而規定的一種統一的標準的體系結構,在java中的集合框架主要分為兩部分:Collection介面和Map介面。二、  用法(一)集合框架涉及的資料結構    1

Java Collection Map類層次結構圖

歡迎指正! 坑爹的,圖片一部分看不全,再上一張吧。 幾點經驗:摘自think in java 4.Use an ArrayList if you’re doing a lot of random accesses, but a LinkedList if you w

CollectionMap的 簡單介紹

集合主要有Collection和Map介面。List特點:元素有放入順序,元素可重複 Map特點:元素按鍵值對儲存,無放入順序 Set特點:元素無放入順序,元素不可重複(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實是固定的)

Java基礎(18):集合(容器)—CollectionMap兩大體系介紹用法

boolean add(E e)_______________________________新增指定元素 boolean addAll(Collection c)___________________將指定集合中所有元素都新增到此 collection boolean contains(Object

java中關於collectionmap及其子類

collection(集合)是一個根介面,用來描述一組物件的集合。JDK並沒有直接提供對個介面的實現,而是提供了對她的子介面的實現例如set和list等。在collection介面中用的最多的兩種基本方法是:add和

java集合:CollectionMap的介紹

Collection集合://java.util.Collection                  List介面:    List集合包括List介面以及List介面的所有實現類。List集合中的元素允許重複,元素的順序就是插入的順序          List介面

collection介面(list、set)map介面的區別

collection Collection是最基本的集合介面,聲明瞭適用於JAVA集合(只包括Set和List)的通用方法。Map介面並不是Collection介面的子介面,但是它仍然被看作是Collection框架的一部分。 list List的長度可變

Java中的ListMap有什麼區別?List, Set, Map是否繼承自Collection介面?

List,Set,Map是否繼承自Collection介面?  答:List,Set是,Map不是。 Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素。一些Collection允許相同的元素而另一些不行。一

Collection,List,SetMap用法區別

Collection , List , Set 和 Map 用法和區別 作者: zccst Java spring MVC 框架的呼叫關係是弄明白了,可是發現後面要走的路還很長,有很多東西對我還是很神祕,比如 list , set , map 等,

Java中Map集合Collection集合的區別

Map集合和Collection集合的區別?    Map集合:是一種鍵和值的對映關係(雙列集合)                Collection集合:單列集合,只能儲存一種型別的元素     間接關係:HashSet依賴於Map介面的子實現類HashMap的      

forEachmapfor方法的區別

turn 而不是 ber num 遍歷數組 風格 cnblogs ron () 那麽接下來,我繼續做分析,為什麽更推薦用.map(),而不是.forEach()? 首先,.map()要比.forEach()執行速度更快。雖然我也說過執行速度不是我們需要考慮的主要因素,但是他