如何在 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

更新時間:2020 年 2 月 21 日

1K+ 瀏覽量

開啟您的 職業生涯

完成課程後獲得認證

開始學習
廣告