Java中的Map是一種數據結構,用于存儲鍵值對的映射。在Map中,可以使用鍵來訪問值,也可以使用值來訪問鍵。下面我們來討論如何在Java中去取Map的值和鍵。
//1. 取值 Mapmap = new HashMap<>(); map.put("apple", 10); map.put("banana", 20); //使用鍵來訪問值 int appleCount = map.get("apple"); System.out.println("appleCount:" + appleCount); //輸出結果:appleCount:10 //使用值來訪問鍵 String bananaName = null; for(Map.Entry entry : map.entrySet()){ if(entry.getValue().equals(20)){ bananaName = entry.getKey(); break; } } System.out.println("bananaName:" + bananaName); //輸出結果:bananaName:banana
在上面的代碼中,我們首先定義了一個Map,并向其中添加了兩個鍵值對。然后,我們使用get方法來訪問Map中的值。這個方法接受一個鍵,如果Map中存在這個鍵,則返回對應的值;否則返回null。我們還可以通過遍歷整個Map,來找到對應的鍵。
同時,在Java8及以上版本中,我們可以使用stream API來查找Map中與特定值相對應的鍵。下面是示例代碼:
// Java 8及以上版本 Mapmap = new HashMap<>(); map.put("apple", 10); map.put("banana", 20); //使用Java 8新特性從值獲取鍵 String result = map.entrySet().stream() .filter(entry ->entry.getValue().equals(20)) .map(Map.Entry::getKey) .findFirst() .orElse(null); System.out.println("result:" + result); //輸出結果:result:banana
上述代碼使用了Java 8中的stream API來查找Map中與特定值相對應的鍵,這可以讓我們更方便地從Map中獲取值。
在Java中,Map還提供了一些有用的方法來獲取Map中的鍵。其中entrySet方法將Map中的鍵值對作為一個Set返回,而keySet方法則返回Map中所有的鍵。下面是示例代碼:
//獲取鍵 Mapmap = new HashMap<>(); map.put("apple", 10); map.put("banana", 20); Set keys = map.keySet(); //遍歷鍵 for(String key : keys){ System.out.println("key:" + key); } //獲取鍵值對 Set >entrySet = map.entrySet(); //遍歷鍵值對 for(Map.Entry entry : entrySet){ System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue()); }
上述代碼中,我們首先通過keySet方法獲取了Map中的所有鍵,并遍歷了它們。我們還使用entrySet方法獲取了Map中的所有鍵值對,并遍歷了它們。