java HashMap詳解及實例代碼
java HashMap
/* * Map集合的特點 * 將鍵映射值的對象,一個映射不能包含重復(fù)的值;每個鍵最多只能映射到一個值 * * Map集合和Collection集合的區(qū)別? * Map集合存儲元素是成對出現(xiàn)的,Map集合的鍵是唯一的,就是可重復(fù)的??梢园堰@個理解為:夫妻對 * Collection集合存儲元素是單獨出現(xiàn)的,Collection的兒子Set是唯一的,List是可重復(fù)的,可以把這個理解為:光棍 * * 注意: * Map集合的數(shù)據(jù)結(jié)構(gòu)值針對鍵有效,限值無效 * Collection集合的數(shù)據(jù)結(jié)構(gòu)是針對元素有效 * * Map集合的功能概述: * 1:添加功能 * V put(K key,V value);//添加元素 * 如果鍵是第一次存儲,就直接存儲元素,返回null * 如果鍵不是第一次存儲,就用值把以前的值替換掉,返回以前的值 * * 2:刪除功能 * void clear();//移除所有的鍵值對元素 * V remove(Object key);//根據(jù)鍵刪除鍵值對元素,并把值返回 * * 3:判斷功能 * boolean containsKey(Object key);//判斷集合是否包含指定的鍵 * boolean containsValue(Object value);//判斷集合是否包含指定的值 * boolean isEmpty();//判斷集合是否為空 * * 4:獲取功能 * set<Map,Entry<E,V>> entrySet();獲取鍵值對的對象集合 * V get(Object key);//根據(jù)鍵獲取值 * Set<K> keySet();//獲取集合中所有鍵的集合 * Collection<V> values();//獲取集合中所有值的集合 * * 5:長度功能 * int size();//返回集合中的鍵值對的對數(shù) * */
Map集合的遍歷
方式1,根據(jù)鍵查詢值
獲取所有鍵的集合
遍歷鍵的集合,獲取每一個鍵
根據(jù)鍵,查詢值
方式2,根據(jù)鍵值對的對象查詢鍵和值
獲取所有鍵值對的對象的集合
遍歷鍵值對的對象的集合,獲取到每一個鍵值對的對象
根據(jù)鍵值對的對象,查詢鍵和值
方式1,根據(jù)鍵查詢值
/* * Map集合的遍歷,根據(jù)鍵查詢值 * * 思路: * A:獲取所有的鍵 * B:遍歷鍵的集合,獲取得到每一個鍵 * C:根據(jù)鍵查詢值 * */
import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map集合的遍歷,根據(jù)鍵查詢值 * * 思路: * A:獲取所有的鍵 * B:遍歷鍵的集合,獲取得到每一個鍵 * C:根據(jù)鍵查詢值 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> map = new HashMap<String, String>(); map.put("hello", "world"); map.put("java", "c++"); map.put("sql", "os"); System.out.println(map); // A:獲取所有的鍵 Set<String> set = map.keySet(); // B:遍歷鍵的集合,獲取得到每一個鍵 for (String key : set) { // C:根據(jù)鍵查詢值 String value = map.get(key); System.out.println(key + "---" + value); } } }
方式2,根據(jù)鍵值對的對象查詢鍵和值
/* * Map集合的遍歷,根據(jù)對象查詢鍵和值 * * 思路: * A:獲取所有的鍵值對對象的集合 * B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象 * C:獲取鍵和值 * */
import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map集合的遍歷,根據(jù)對象查詢鍵和值 * * 思路: * A:獲取所有的鍵值對對象的集合 * B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象 * C:獲取鍵和值 * */ public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> map = new HashMap<String, String>(); map.put("hello", "world"); map.put("java", "c++"); map.put("sql", "os"); System.out.println(map); // A:獲取所有的鍵值對對象的集合 Set<Map.Entry<String, String>> set = map.entrySet(); // B:遍歷鍵值對對象的集合,得到每一個鍵值對的對象 for (Map.Entry<String, String> me : set) { // C:獲取鍵和值 String key = me.getKey(); String value = me.getValue(); System.out.println(key + "---" + value); } } }
/* * 1:HashMap和Hashtable的區(qū)別? * HashMap線程不安全,效率高,允許null鍵和null值 * Hashtable線程安全,效率低,不允許null鍵和null值 * * 2:List,Set,Map等接口是否都繼承于Map接口? * List,Set不是繼承自Map接口,它們繼承自Collection接口 * Map接口本身就是一個頂層接口 * */ import java.util.HashMap; import java.util.Hashtable; public class IntegerDemo { public static void main(String[] args) { // TODO Auto-generated method stub HashMap<String, String> hm = new HashMap<String, String>(); Hashtable<String, String> ht = new Hashtable<String, String>(); hm.put("hello", "world"); hm.put("java", "c++"); hm.put(null, "sql"); ht.put("hello", "world"); ht.put("java", "c++"); ht.put(null, "sql");// Exception in thread "main" // java.lang.NullPointerException } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- java HashMap內(nèi)部實現(xiàn)原理詳解
- 在Java8與Java7中HashMap源碼實現(xiàn)的對比
- 詳解Java HashMap實現(xiàn)原理
- java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較
- Java用自定義的類作為HashMap的key值實例
- java HashMap,TreeMap與LinkedHashMap的詳解
- java面試題——詳解HashMap和Hashtable 的區(qū)別
- AngularJS操作鍵值對象類似java的hashmap(填坑小結(jié))
- java使用hashMap緩存保存數(shù)據(jù)的方法
- 全面解析Java中的HashMap類
- 剖析Java中HashMap數(shù)據(jù)結(jié)構(gòu)的源碼及其性能優(yōu)化
- java HashMap擴容詳解及實例代碼
相關(guān)文章
在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程
這篇文章主要介紹了在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10Java9新特性對HTTP2協(xié)議支持與非阻塞HTTP?API
這篇文章主要為大家介紹了Java9新特性對HTTP2協(xié)議的支持與非阻塞HTTP?API,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03Java EasyExcel實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式
EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,下面我們就來學(xué)習(xí)一下EasyExcel如何實現(xiàn)導(dǎo)出多sheet并設(shè)置單元格樣式吧2023-11-11Java中==與equals()及hashcode()三者之間的關(guān)系詳解
最近也是在讀Hollis的《深入理解Java核心技術(shù)》里面一節(jié)講到了equals()和hashcode()的關(guān)系,對于這個高頻面試點,咱們需要認真理清一下幾者之間的關(guān)系2022-10-10