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

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

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

不可变列表的初始化:

List<Integer> immutableEmptyList = List.of();

在上面,我们初始化了一个空的,不变的 List。

不变集的初始化:

Set<Integer> immutableEmptySet = Set.of();

在上面,我们初始化了一个空的,不可变的 Set。

不变映射的初始化:

Map<Integer, Integer> immutableEmptyMap = Map.of();

在上面,我们初始化了一个空的,不变的 Map。

示例

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

以上是 如何在Java 9中初始化不可变集合? 的全部内容, 来源链接: utcz.com/z/343355.html

回到顶部