Java中的Map集合詳解
阿新 • • 發佈:2019-02-07
一、概述
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=男}