在Java 9中如何初始化不可变集合?

在Java 9中如何初始化不可变集合?

Java 9提供了工厂方法来创建不可变的列表,集合和映射。它可以用于创建空的或非空的集合对象。在Java 8和之前的版本中,我们可以使用集合类的实用方法,如unmodifiableXXX来创建不可变的集合对象。如果我们需要创建一个不可变的列表,那么可以使用Collections.unmodifiableList()方法。

这些工厂方法允许我们轻松初始化不可变的集合,无论它们是空的还是非空的。

不可变列表的初始化:

List immutableEmptyList = List.of();登录后复制

初始化不可变的集合:

Set immutableEmptySet = Set.of();登录后复制

初始化不可变的map:

Map immutableEmptyMap = Map.of();登录后复制

Example

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 list8 = new ArrayList(); list8.add("INDIA"); list8.add("AUSTRALIA"); list8.add("ENGLAND"); list8.add("NEWZEALAND"); List immutableList8 = Collections.unmodifiableList(list8); immutableList8.forEach(System.out::println); System.out.println(); List immutableList = List.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableList.forEach(System.out::println); System.out.println(); Set immutableSet = Set.of("INDIA", "AUSTRALIA", "ENGLAND", "NEWZEALAND"); immutableSet.forEach(System.out::println); System.out.println(); Map immutableMap = Map.of("INDIA", "India", "AUSTRALIA", "Australia", "ENGLAND", "England", "NEWZEALAND", "Newzealand"); immutableMap.forEach((key, value) -> System.out.println(key + " : " + value)); System.out.println(); } }登录后复制