Java中關(guān)于Map四種取值方式
Java關(guān)于Map的四種取值方式
map的主要作用是什么?
可以通過創(chuàng)建一個(gè)map的實(shí)現(xiàn)類 來存放 數(shù)據(jù) 值 和值的描述 也可以通過描述去取得數(shù)據(jù)
將鍵映射到值的對(duì)象。一個(gè)映射不能包含重復(fù)的鍵;每個(gè)鍵最多只能映射到一個(gè)值。
此接口取代 Dictionary 類,后者完全是一個(gè)抽象類,而不是一個(gè)接口。
Map 接口提供三種collection 視圖,允許以鍵集、值集或鍵-值映射關(guān)系集的形式查看某個(gè)映射的內(nèi)容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實(shí)現(xiàn)可明確保證其順序,如 TreeMap 類;另一些映射實(shí)現(xiàn)則不保證順序,如HashMap 類。
Map的取值方式主要有4種:
1.keySet二次取值;
2.entrySet使用iterator遍歷key和value
3.entrySet遍歷key和value
4.通過Map.values()遍歷所有的value,但不能遍歷key
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
// 第一種方法:普遍使用,二次取值
System.out.println("通過Map.keySet遍歷key和value:");
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
// 第二種方法:
System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
// 第三種方法:推薦,尤其是容量大時(shí)
System.out.println("通過Map.entrySet遍歷key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}
// 第四種方法:
System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
Java中Map取值轉(zhuǎn)String Null值處理
Map<String, Object> 直接取值轉(zhuǎn)String
String value = (String)map.get("key")當(dāng)map.get(“key”)為Null值時(shí)會(huì)報(bào)錯(cuò)。
使用String類的valueOf靜態(tài)方法可以解決這個(gè)問題
String value = String.valueOf(map.get("key"))總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java BigDecimal類的使用和注意事項(xiàng)
這篇文章主要講解Java中BigDecimal類的用法,并簡單介紹一些注意事項(xiàng),希望能給大家做一個(gè)參考。2016-06-06
MyBatis中關(guān)于resultType和resultMap的區(qū)別介紹
MyBatis中在查詢進(jìn)行select映射的時(shí)候,返回類型可以用resultType,也可以用resultMap,那么MyBatis中關(guān)于resultType和resultMap的區(qū)別是什么呢?下面小編通過本文給大家解答下2016-09-09
Java實(shí)戰(zhàn)之基于I/O流設(shè)計(jì)的圖書管理系統(tǒng)
這篇文章主要介紹了Java實(shí)戰(zhàn)之基于I/O流設(shè)計(jì)的圖書館管理系統(tǒng),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
java實(shí)現(xiàn)批量導(dǎo)入.csv文件到mysql數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)批量導(dǎo)入.csv文件到mysql數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
調(diào)用Process.waitfor導(dǎo)致的進(jìn)程掛起問題及解決
這篇文章主要介紹了調(diào)用Process.waitfor導(dǎo)致的進(jìn)程掛起問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Maven編譯Fatal?error?compiling:無效的目標(biāo)發(fā)行版:11問題及解決
在Java11中編譯Springboot工程時(shí)遇到問題,解決方法是在pom.xml文件中指定Maven的Java編譯器版本,可以使用MavenJava編譯器屬性或插件,在Java9及以后的版本中,也要使用插件并設(shè)置release屬性2024-12-12

