欢迎访问宙启技术站
智能推送

使用ImmutableSet()创建不可变集合的方法及示例

发布时间:2023-12-14 22:09:58

ImmutableSet()是Guava库中的一个类,它可以用于创建不可变集合。不可变集合在创建后,不能被修改,因此它可以确保集合的内容不会被意外改变,从而提供更高的安全性。

使用ImmutableSet()创建不可变集合的方法有以下几种:

1. 使用of()方法创建:

ImmutableSet.of()方法可以接受多个元素作为参数,用于创建包含这些元素的不可变集合。示例代码如下:

   ImmutableSet<String> set = ImmutableSet.of("apple", "banana", "orange");
   

上述代码将创建一个包含"apple"、"banana"和"orange"的不可变集合。

2. 使用copyOf()方法创建:

copyOf()方法可以接受一个已经存在的集合作为参数,用于创建一个不可变集合,该集合内容与原集合相同。示例代码如下:

   List<String> list = new ArrayList<>();
   list.add("apple");
   list.add("banana");
   list.add("orange");

   ImmutableSet<String> set = ImmutableSet.copyOf(list);
   

上述代码将通过copyOf()方法创建一个与原列表内容相同的不可变集合。

3. 使用Builder模式创建:

Builder模式可以用于创建一个不可变集合,并在创建过程中逐步添加元素。示例代码如下:

   ImmutableSet<String> set = ImmutableSet.<String>builder()
           .add("apple")
           .add("banana")
           .add("orange")
           .build();
   

上述代码将使用Builder模式创建一个包含"apple"、"banana"和"orange"的不可变集合。

使用ImmutableSet()创建不可变集合的示例:

假设我们需要创建一个不可变集合,包含一些国家名称,可以使用ImmutableSet()来实现。示例代码如下:

import com.google.common.collect.ImmutableSet;

public class ImmutableSetExample {
    public static void main(String[] args) {
        ImmutableSet<String> countries = ImmutableSet.of(
                "China",
                "India",
                "United States",
                "Russia",
                "Brazil"
        );

        // 输出不可变集合的内容
        for (String country : countries) {
            System.out.println(country);
        }

        // 尝试修改集合内容,将会抛出UnsupportedOperationException异常
        countries.add("Germany");
    }
}

输出结果:

China
India
United States
Russia
Brazil

上述代码中,我们使用of()方法创建了一个包含几个国家名称的不可变集合,并通过遍历输出了集合的内容。接着,我们尝试向集合中添加一个新的元素,但由于不可变集合是不可修改的,因此将会抛出UnsupportedOperationException异常。

总结:

使用ImmutableSet()创建不可变集合可以确保集合的内容不会被意外改变,提供更高的安全性。通过of()方法、copyOf()方法和Builder模式,我们可以灵活地创建不可变集合,并保证集合的内容不会被修改。