一、Java 8 Map簡介
Java 8引入了很多新的特性,其中最重要的一項便是Stream API。Stream API能夠將集合處理得更加方便,而在Streams API中,Map同樣起到了非常重要的作用。Map是一種用於存儲鍵值對的集合類型,通過一個唯一的鍵可以獲取到其對應的值,類似一個字典。
在Java 8中,Map得到了一些關鍵性的升級,我們可以通過lambda表達式和方法引用更加簡單、高效地操作Map。
二、Map的創建和初始化
創建和初始化Map是開發過程中常見的操作之一,Java 8為此提供了如下幾種方式:
1、使用put方法初始化Map
Map map = new HashMap();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
2、使用靜態方法of()初始化Map
Map map = Map.of("A", 1, "B", 2, "C", 3);
3、使用entrySet()方法和流初始化Map
Map map = Stream.of(
new AbstractMap.SimpleEntry("A", 1),
new AbstractMap.SimpleEntry("B", 2),
new AbstractMap.SimpleEntry("C", 3))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
三、Map的遍歷
Java 8中,我們可以使用lambda表達式和方法引用來遍歷Map。下面是兩種常用的方法:
1、使用forEach方法遍歷Map
Map map = Map.of("A", 1, "B", 2, "C", 3);
map.forEach((key, value) -> System.out.println(key + " = " + value));
2、使用entrySet()和stream()方法遍歷Map
Map map = Map.of("A", 1, "B", 2, "C", 3);
map.entrySet().stream().forEach(entry -> System.out.println(entry.getKey() + " = " + entry.getValue()));
四、Map的過濾
在Java8中,我們可以使用流的方法filter對Map進行過濾。下面是一個簡單的例子:
Map map = Map.of("A", 1, "B", 2, "C", 3);
Map filteredMap = map.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(filteredMap);
五、Map的轉換
在Java 8中,我們可以使用map()方法通過對Map中包含的鍵值對進行某種操作來得到一個新的Map。下面是一個例子:
Map map = Map.of("A", 1, "B", 2, "C", 3);
Map newMap = map.entrySet().stream()
.map(entry -> new AbstractMap.SimpleEntry(entry.getKey(), String.valueOf(entry.getValue())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(newMap);
六、Map的合併
在Java 8中,我們可以使用merge()方法來合併兩個Map。下面是一個例子:
Map map1 = Map.of("A", 1, "B", 2);
Map map2 = Map.of("A", 3, "C", 4);
Map result = new HashMap(map1);
map2.forEach((key, value) -> result.merge(key, value, (v1, v2) -> v1 + v2));
System.out.println(result);
七、總結
在Java 8中,Map得到了許多新增的特性,我們可以使用lambda表達式和方法引用更加簡潔高效地使用Map。我們可以通過創建、遍歷、過濾、轉換和合併等操作來處理Map,這些操作都可以通過Java 8的新特性來實現。Map的使用是Java開發中的重要組成部分,我們需要掌握它的各項特性和使用方法,才能更好地完成開發任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/184837.html