1. 程式人生 > >Java中的Map集合詳解

Java中的Map集合詳解

一、概述

 java中的map集合使用鍵(key)值(value)來儲存資料,其中值(value)可以重複,但鍵(key)必須是唯一,也可以為空,但最多隻能有一個key為空,它的主要實現類有HashMap、LinkedHashMap、TreeMap。

二、Map集合方法概要


三、HashMap、LinkedHashMap、TreeMap區別及用法

1、HashMap

特點:儲存元素時先進後出、無序性;查詢效率比較高;key-value可以為null,但最多隻能為一個null;不支援執行緒同步,即可以有多個執行緒同時寫HashMap,可能導致資料不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。

示例:

Map<String,String> map=new HashMap<String, String>();
//使用put新增元素
map.put("name","張三");
map.put("sex","男");
map.put("age","12");
map.put("addres","深圳");
map.put("iPhone","13068706819");
//存放兩個key-value為空的元素,列印時出現一個
map.put(null, null);
map.put(null, null);

//打印出來元素是先進後出排序
System.out.println("HashMap存放元素規則是先進後出:"+map);
效果:

2、LinkedHashMap

特點:LinkedHashMap內部是雙向連結串列結構,儲存了元素插入的順序,Iterator遍歷元素時按照插入的順序排列,支援執行緒同步。

程式碼:

//例項化LinkedHashMap物件,儲存資料型別為String
Map<String,String> map1=new LinkedHashMap<String,String>();
//使用put新增元素
map1.put("name","張三");
map1.put("sex","男");
map1.put("age","12");
map1.put("addres","深圳");
map1.put("iPhone","13068706819");
map1.put(null, null);
列印元素排列方式:
System.out.println("元素按照插入的順序排列:"+map1);
{name=張三, sex=男, age=12, addres=深圳, iPhone=13068706819, null=null}

3、TreeMap

特點:儲存元素key-value不能為null,允許key-value重複;遍歷元素時隨機排列。

程式碼:

Map<String, String> map2 = new TreeMap<String, String>();
map2.put("name", "張三");
map2.put("sex", "男");
map2.put("age", "12");
map2.put("addres", "深圳");
map2.put("iPhone", "13068706819");
map2.put("iPhone", "13068706819");
列印:
System.out.println("元素隨機排列"+map2);
{addres=深圳, age=12, iPhone=13068706819, name=張三, sex=男}