在Java中创建预填充集[英] Creating prepopulated set in Java

问题描述

Java中,如何创建一个在施工中填充的最终集合?我想做以下操作:

static final Set<Integer> NECESSARY_PERMISSIONS 
    = new HashSet<Integer>([1,2,3,6]);

,但我不知道Java中的适当语法.

推荐答案

尝试这个成语:

import java.util.Arrays;

new HashSet<Integer>(Arrays.asList(1, 2, 3, 6))

其他推荐答案

您可以考虑使用guava的 ImmutableSet :

static final Set<Integer> NECESSARY_PERMISSIONS = ImmutableSet.<Integer>builder()
        .add(1)
        .add(2)
        .add(3)
        .add(6)
        .build();
static final Set<String> FOO = ImmutableSet.of("foo", "bar", "baz");

除其他外,这比HashSet>

要快得多(太空效率高3倍)

其他推荐答案

使用 Google guava 库您可以使用,正好设计为这种情况(常数值):

static final ImmutableSet<Integer> NECESSARY_PERMISSIONS =
        ImmutableSet.of(1,2,3,6);

老式的方式(没有任何库):

static final Set<Integer> NECESSARY_PERMISSIONS =
        new HashSet<Integer>(Arrays.asList(1,2,3,6));

编辑:

在Java 9+中可以使用 不变的套件静态工厂方法 :

static final Set<Integer> NECESSARY_PERMISSIONS =
        Set.of(1,2,3,6);

本文地址:https://www.itbaoku.cn/post/978731.html