java HashMap詳解及實(shí)例代碼
java HashMap
/* * Map集合的特點(diǎn) * 將鍵映射值的對象,一個(gè)映射不能包含重復(fù)的值;每個(gè)鍵最多只能映射到一個(gè)值 * * Map集合和Collection集合的區(qū)別? * Map集合存儲(chǔ)元素是成對出現(xiàn)的,Map集合的鍵是唯一的,就是可重復(fù)的??梢园堰@個(gè)理解為:夫妻對 * Collection集合存儲(chǔ)元素是單獨(dú)出現(xiàn)的,Collection的兒子Set是唯一的,List是可重復(fù)的,可以把這個(gè)理解為:光棍 * * 注意: * Map集合的數(shù)據(jù)結(jié)構(gòu)值針對鍵有效,限值無效 * Collection集合的數(shù)據(jù)結(jié)構(gòu)是針對元素有效 * * Map集合的功能概述: * 1:添加功能 * V put(K key,V value);//添加元素 * 如果鍵是第一次存儲(chǔ),就直接存儲(chǔ)元素,返回null * 如果鍵不是第一次存儲(chǔ),就用值把以前的值替換掉,返回以前的值 * * 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ù)鍵查詢值
獲取所有鍵的集合
遍歷鍵的集合,獲取每一個(gè)鍵
根據(jù)鍵,查詢值
方式2,根據(jù)鍵值對的對象查詢鍵和值
獲取所有鍵值對的對象的集合
遍歷鍵值對的對象的集合,獲取到每一個(gè)鍵值對的對象
根據(jù)鍵值對的對象,查詢鍵和值
方式1,根據(jù)鍵查詢值
/* * Map集合的遍歷,根據(jù)鍵查詢值 * * 思路: * A:獲取所有的鍵 * B:遍歷鍵的集合,獲取得到每一個(gè)鍵 * C:根據(jù)鍵查詢值 * */
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合的遍歷,根據(jù)鍵查詢值
*
* 思路:
* A:獲取所有的鍵
* B:遍歷鍵的集合,獲取得到每一個(gè)鍵
* 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:遍歷鍵的集合,獲取得到每一個(gè)鍵
for (String key : set) {
// C:根據(jù)鍵查詢值
String value = map.get(key);
System.out.println(key + "---" + value);
}
}
}
方式2,根據(jù)鍵值對的對象查詢鍵和值
/* * Map集合的遍歷,根據(jù)對象查詢鍵和值 * * 思路: * A:獲取所有的鍵值對對象的集合 * B:遍歷鍵值對對象的集合,得到每一個(gè)鍵值對的對象 * C:獲取鍵和值 * */
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* Map集合的遍歷,根據(jù)對象查詢鍵和值
*
* 思路:
* A:獲取所有的鍵值對對象的集合
* B:遍歷鍵值對對象的集合,得到每一個(gè)鍵值對的對象
* 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:遍歷鍵值對對象的集合,得到每一個(gè)鍵值對的對象
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接口本身就是一個(gè)頂層接口
* */
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)部實(shí)現(xiàn)原理詳解
- 在Java8與Java7中HashMap源碼實(shí)現(xiàn)的對比
- 詳解Java HashMap實(shí)現(xiàn)原理
- java 中HashMap、HashSet、TreeMap、TreeSet判斷元素相同的幾種方法比較
- Java用自定義的類作為HashMap的key值實(shí)例
- 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擴(kuò)容詳解及實(shí)例代碼
相關(guān)文章
SpringCLoud搭建Zuul網(wǎng)關(guān)集群過程解析
這篇文章主要介紹了SpringCLoud搭建Zuul網(wǎng)關(guān)集群過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
詳解Java利用ExecutorService實(shí)現(xiàn)同步執(zhí)行大量線程
這篇文章主要介紹了Java利用ExecutorService實(shí)現(xiàn)同步執(zhí)行大量線程,ExecutorService可以維護(hù)我們的大量線程在操作臨界資源時(shí)的穩(wěn)定性。2017-03-03
Java使用Curator進(jìn)行ZooKeeper操作的詳細(xì)教程
Apache Curator 是一個(gè)基于 ZooKeeper 的 Java 客戶端庫,它極大地簡化了使用 ZooKeeper 的開發(fā)工作,在分布式系統(tǒng)中,ZooKeeper 通常被用來作為協(xié)調(diào)服務(wù),而 Curator 則為我們提供了更簡潔易用的接口,本文將介紹 Curator 的核心功能及實(shí)踐樣例,需要的朋友可以參考下2025-04-04
SpringCloud gateway request的body驗(yàn)證或修改方式
這篇文章主要介紹了SpringCloud gateway request的body驗(yàn)證或修改方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
用攔截器修改返回response,對特定的返回進(jìn)行修改操作
這篇文章主要介紹了用攔截器修改返回response,對特定的返回進(jìn)行修改操作。具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

