一、使用Map自帶的keySet()方法獲取所有的Key
Map<String, Integer> map = new HashMap<>(); map.put("Tom", 18); map.put("Jerry", 21); map.put("Alice", 25); Set<String> keySet = map.keySet(); for (String key : keySet) { System.out.println(key); }
使用Map自帶的keySet()方法可以獲取到所有的Key,然後可以使用增強的for循環遍歷Key,明確、簡潔、易懂。
二、使用Map自帶的keys()方法獲取Key的集合
Map<String, Integer> map = new HashMap<>(); map.put("Tom", 18); map.put("Jerry", 21); map.put("Alice", 25); Collection<String> keys = map.keySet(); for (String key : keys) { System.out.println(key); }
使用Map自帶的keys()方法可以獲取Key的集合,與keySet()方法類似,但是keys()方法返回的是Collection實例,而不是Set實例。Collection是一個更加通用的集合類型,因此在某些情況下可能更適合使用。
三、使用entrySet()方法實現遍歷並獲取Key
Map<String, Integer> map = new HashMap<>(); map.put("Tom", 18); map.put("Jerry", 21); map.put("Alice", 25); Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); for (Map.Entry<String, Integer> entry : entrySet) { System.out.println(entry.getKey()); }
使用entrySet()方法可以遍歷Map,並返回一個包含所有鍵值對的Set集合。我們可以通過entry.getKey()方法獲取Key值,同時也可以通過entry.getValue()方法獲取對應的Value值。
四、使用Iterator迭代器遍歷Map並獲取Key
Map<String, Integer> map = new HashMap<>(); map.put("Tom", 18); map.put("Jerry", 21); map.put("Alice", 25); Iterator<String> iterator = map.keySet().iterator(); while (iterator.hasNext()) { String key = iterator.next(); System.out.println(key); }
使用Iterator迭代器遍歷Map,同樣可以獲取Key值。比較適用於在Java 5之前的老版本中使用,代碼最為繁瑣,但同時也是一種最原始和最基本的遍歷方式。
五、使用Java 8新增的Lambda表達式遍歷Map並獲取Key
Map<String, Integer> map = new HashMap<>(); map.put("Tom", 18); map.put("Jerry", 21); map.put("Alice", 25); map.keySet().forEach(key -> System.out.println(key));
使用Java 8新增的Lambda表達式,我們可以在一行代碼中完成對Map遍歷獲取Key的操作。相比Java 5之前的Iterator方式,這種方式代碼簡潔、易懂,省去了Iterator迭代器的一些過程。
總結
本篇文章從多個方面介紹了Java工程師在獲取Map的Key值時可以採用的不同方法。它們分別是使用Map自帶的keySet()方法、keys()方法、entrySet()方法、Iterator迭代器和Java 8中新增的Lambda表達式。不同的方法適用於不同的場景,它們各有優點和局限性,Java工程師在選擇實現方法時應該根據實際情況進行選擇。在代碼實現方面,我們應該盡量避免繁瑣冗餘的代碼,尋求在“簡潔、優雅、高效”的前提下,儘可能簡化代碼的複雜性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160963.html