如何在 Java 9 中初始化不可變集合?
Java 9 提供了工廠方法來建立不可變列表、集合和對映。這對於建立空或非空集合物件非常有用。在 Java 8 和更早版本中,我們可以使用集合類實用方法(例如 unmodifiableXXX)來建立不可變集合物件。如果需要建立不可變列表,則使用 Collections.unmodifiableList() 方法。
這些工廠方法讓我們能夠輕鬆初始化不可變集合,無論它們是空還是非空。
不可變列表的初始化
List<Integer> immutableEmptyList = List.of();
在上面,我們初始化了一個空的不可變列表。
不可變集合的初始化
Set<Integer> immutableEmptySet = Set.of();
在上面,我們初始化了一個空的不可變集合。
不可變對映的初始化
Map<Integer, Integer> immutableEmptyMap = Map.of();
在上面,我們初始化了一個空的不可變對映。
示例
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; public class ImmutableCollectionTest { public static void main(String args[]) { List<String> list8 = new ArrayList<String>(); list8.add("INDIA"); list8.add("AUSTRALIA"); list8.add("ENGLAND"); list8.add("NEWZEALAND"); List<String> immutableList8 = Collections.unmodifiableList(list8); immutableList8.forEach(System.out::println); System.out.println(); List<String> immutableList = List.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableList.forEach(System.out::println); System.out.println(); Set<String> immutableSet = Set.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableSet.forEach(System.out::println); System.out.println(); Map<String, String> immutableMap = Map.of("INDIA", "India", "AUSTRALIA", "Australia", "ENGLAND", "England", "NEWZEALAND", "Newzealand"); immutableMap.forEach((key, value) -> System.out.println(key + " : " + value)); System.out.println(); } }
輸出
INDIA AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA ENGLAND NEWZEALAND AUSTRALIA ENGLAND NEWZEALAND INDIA AUSTRALIA : Australia ENGLAND : England NEWZEALAND : Newzealand INDIA : India
廣告