Map是Java中常用的一種數(shù)據(jù)結(jié)構(gòu),它可以存儲鍵值對,其中鍵是唯一的,而值則可以重復(fù)。在Java中獲取Map中的value值有多種方法,以下是其中幾種常見的方法:
一、使用Map.get()方法
Map.get(Object key)方法可以通過鍵獲取對應(yīng)的值,如果鍵不存在則返回null。示例代碼如下:
Map map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
String value = map.get(1);
System.out.println(value); // 輸出 "value1"
以上代碼我們首先創(chuàng)建了一個(gè)HashMap對象,并添加了兩個(gè)鍵值對。接著通過get()方法獲取鍵1對應(yīng)的值,即可得到"value1"。
二、使用Map.values()方法
Map.values()方法可以返回Map中所有的值,返回一個(gè)Collection對象,具體使用方法可以參考如下代碼:
Map map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
Collection values = map.values();
for (String value : values) {
System.out.println(value); // 輸出 "value1" 和 "value2"
}
以上代碼中,我們首先創(chuàng)建了一個(gè)HashMap對象,并添加了兩個(gè)鍵值對,之后通過調(diào)用values()方法獲取Map中的所有值,最后通過for循環(huán)遍歷輸出所有的值。
三、使用Map.entrySet()方法
Map.entrySet()方法可以返回Map中所有的鍵值對,返回一個(gè)Set對象,其中每個(gè)元素為Map.Entry,具體使用方法可以參考如下代碼:
Map map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
Set> entrySet = map.entrySet();
for (Map.Entry entry : entrySet) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println("key=" + key + ", value=" + value); // 輸出 "key=1, value=value1" 和 "key=2, value=value2"
}
以上代碼中,我們首先創(chuàng)建了一個(gè)HashMap對象,并添加了兩個(gè)鍵值對,之后通過調(diào)用entrySet()方法獲取Map中的所有鍵值對,最后通過for循環(huán)遍歷輸出所有的鍵和值。
四、使用Iterator迭代器
除了以上三種方式,我們還可以使用Iterator迭代器來獲取Map的value值,具體實(shí)現(xiàn)可參考以下代碼:
Map map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Integer key = iterator.next();
String value = map.get(key);
System.out.println("key=" + key + ", value=" + value); // 輸出 "key=1, value=value1" 和 "key=2, value=value2"
}
以上代碼中,我們首先創(chuàng)建了一個(gè)HashMap對象,并添加了兩個(gè)鍵值對,之后通過調(diào)用keySet()方法獲取所有鍵的set集合,再通過迭代器遍歷獲取每個(gè)鍵對應(yīng)的值。
五、使用Java8中的Stream流
Java8中新增了Stream流的概念,可以通過Stream來遍歷Map并獲取其中的value值,具體實(shí)現(xiàn)可參考以下代碼:
Map map = new HashMap<>();
map.put(1, "value1");
map.put(2, "value2");
map.entrySet().stream()
.forEach(entry -> System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue())); // 輸出 "key=1, value=value1" 和 "key=2, value=value2"
以上代碼中,我們首先創(chuàng)建了一個(gè)HashMap對象,并添加了兩個(gè)鍵值對,之后通過entrySet()方法獲取所有鍵值對,并通過stream()方法將其轉(zhuǎn)換為Stream流,最后通過forEach()方法遍歷輸出所有鍵值對。