java map
java.util 最常用的集合類之一是Map ,map提供了一個通用的元素儲存方法。 Map 集合類用於儲存元素對(稱作“鍵”和“值”),其中每個鍵對映到一個值。常用到的有hashmap和hashtable。
[@more@]Map 的介面和方法
覆蓋的方法。 我們將這 Object 的這兩個方法覆蓋,以正確比較 Map 物件的等價性。
equals(Object o) | 比較指定物件與此 Map 的等價性 |
hashCode() | 返回此 Map 的雜湊碼 |
其他方法
clear() | 從 Map 中刪除所有對映 |
remove(Object key) | 從 Map 中刪除鍵和關聯的值 |
put(Object key, Object value) | 將指定值與指定鍵相關聯 |
clear() | 從 Map 中刪除所有對映 |
putAll(Map t) | 將指定 Map 中的所有對映覆制到此 map |
如果我們使用putAll,則map可以自動擴充套件大小。如果使用put,建議在建立map的時候使用loadfactor自動擴充套件以提高效率。
檢視 Map
訪問元素
檢索有關 Map 內容的資訊但不更改 Map 內容。
get(Object key) | 返回與指定鍵關聯的值 |
containsKey(Object key) | 如果 Map 包含指定鍵的對映,則返回 true |
containsValue(Object value) | 如果此 Map 將一個或多個鍵對映到指定值,則返回 true |
isEmpty() | 如果 Map 不包含鍵-值對映,則返回 true |
size() | 返回 Map 中的鍵-值對映的數目 |
key唯一但是value不一定唯一,所以使用containsValue的時候可能效率會較低。
hash技術
int hashvalue = (key.hashCode() & 0x7FFFFFFF) % table.length;
需要考慮和處理hash collision,如果是使用已有的則不需要考慮,如果自己實現hashmap,
則需要考慮和處理對應的case。
效率問題:之前使用的時候簡單建立,基本上都沒有初始化大小和負載因子,現在看了一下
jdk的help才發現有這兩個引數可以在很多時候提高效能。
在建立map的時候建議使用
Map userMap = new HashMap();
來替代
HashMap userMap = new HashMap();
這也符合設計模式或者物件導向的理論,只要實現了相同的介面和方法
只需要在這個建立的地方修改,使用不同的類來建立,其他的呼叫程式碼則無須修改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/47869/viewspace-999445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java map轉JSONJavaJSON
- Java集合類——MapJava
- JAVA集合——Map介面Java
- Java筆記——【Map】Java筆記
- 【java】【Map】HashMap、Hashtable、CollectionsJavaHashMap
- java中的Map集合Java
- JAVA集合框架 - Map介面Java框架
- Java Map集合練習Java
- java Map相關總結Java
- Java物件轉換成MapJava物件
- Java集合四:Map簡介;Java
- 深入淺出java的MapJava
- Java中將多個Map扁平化為單個MapJava
- Java中實現不可變MapJava
- Map集合(Java基礎、skycto JEEditor)Java
- Java Map的最佳實踐 - tremblayJavaREM
- Java Map和List常見操作Java
- Java遍歷Map集合的方法Java
- java將map轉成bean工具JavaBean
- Java HashMap和Go map原始碼對比JavaHashMapGo原始碼
- list轉map,使用java8,stream流Java
- Java中的Map集合學習筆記Java筆記
- Java遍歷Map物件的四種方式Java物件
- java中遍歷map的集中方法Java
- Java 中的泛型 集合(List,Set) MapJava泛型
- Java中將 Map 轉換為 Spring MultiValueMapJavaSpring
- Java交換map的key和value值Java
- 你只會用 map.put?試試 Java 8 compute ,操作 Map 更輕鬆!Java
- Java常用資料結構之Map-HashMapJava資料結構HashMap
- java8 實現map以value值排序Java排序
- Java 8 中 Map 騷操作之 merge() 的用法Java
- Scala與Java差異(五)之Map與TupleJava
- Java集合體系總結 Set、List、Map、QueueJava
- 【Java中遍歷Map物件的4種方法】Java物件
- java map存取重複值、幼兒園分班問題、map按key自動排序問題Java排序
- 如何在Java 8中將List轉換為Map?Java
- Java執行緒安全的集合類:Map、List、SetJava執行緒
- 詳解Java 容器(第④篇)——容器原始碼分析 - MapJava原始碼
- Java集合 Collection、Set、Map、泛型 簡要筆記Java泛型筆記