程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 聚集----Map、Collection

java 聚集----Map、Collection

編輯:關於JAVA

java 聚集----Map、Collection。本站提示廣大學習愛好者:(java 聚集----Map、Collection)文章只能為提供參考,不一定能成為您想要的結果。以下是java 聚集----Map、Collection正文


接口:白色;完成類:黑色字體

1、 Collection聚集 

Collection

 |_____Set(HashSet)

 |      |_____SortedSet(TreeSet)

 |_____List(ArrayList,LinkedList,Vector )

 

Collection:聚集條理中的根接口,JDK沒有供給這個接口的完成類。

List: 有序(依照放入的次序)、可以反復、有下標。

Set:無序、弗成以反復、無下標。

SortedSet:是Set接口的子接口,SortedSet中的元素是有序的(按字母升序)。

          經由過程 Comparable接口的compareTo辦法,完成元素是有序的。放入的元素都必需完成 Comparable 接口(或許被指定的Comparator 所接收)。

 

List接口的完成類的差別:

ArrayList :實質上是一個數組。線程不平安。查詢(get/set)快,增刪(add/remove)慢。

LinkedList: 實質上是一個雙向鏈表。線程不平安。查詢(get/set)慢,增刪(add/remove)快。

Vector :和ArrayList簡直是完整雷同的,獨一的差別在於Vector是同步類(synchronized),是線程平安的。

 

2、Map聚集

Map(HashMap,Hashtable)

 |_____SortedMap(TreeMap)

 

Map:存儲的是key-value對,不克不及包括反復的key,可以有反復的value。

SortedMap:Map的子接口SortedMap是一個按升序分列key的Map。

HashMap、Hashtable和TreeMap的差別

HashMap :線程不平安。key和value都可所以null。元素是無序的。底層是哈希表數據構造。

Hashtable:線程平安。key和value都弗成所以null。元素是無序的。底層是哈希表數據構造。

TreeMap:線程不平安。key和value都弗成所以null。元素是有序的(按字母升序)。底層是二叉樹數據構造。

 

3、Map的key、Set 的值若何完成不反復

 

Map 放雷同的key,以後的籠罩之前的

Map map=new  HashMap();

map.put(“name”,”張三”);

map.put(“name”,”王五”);------有用,籠罩之前的

Set放雷同的元素時,第一個是有用的,以後的不會被放入

Set set=new HashSet();

set.add(“111”);---有用

set.add(“222”);----斷定已有,不會放入

1、HashMap 的 put 與 HashSet 的 add

 因為 HashSet 的 add() 辦法添加聚集元素時現實上改變為挪用 HashMap 的 put() 辦法來添加 key-value 對。HashMap 的 put() 辦法起首挪用.hashCode() 斷定前往值相等,假如前往值相等則再經由過程 equals 比擬也前往 true,終究以為key對象是相等的曾經在HashMap中存在了。

2、TreeMap 的 put 與 TreeSet 的 add

TreeMap中挪用put辦法添加鍵值時,挪用對象的它的 compareTo(或 compare)辦法對一切鍵停止比擬,此辦法飯回0,則以為兩個鍵就是相等的。

TreeSet添加元素的時刻,挪用compareTo或compare辦法來定位元素的地位,也就是前往compareTo或compare前往0則以為是統一個地位的元素,即雷同元素

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved