如何通过构造初始化哈希集值?
2022-08-31 04:02:15
我需要创建一个具有初始值的。Set
Set<String> h = new HashSet<String>();
h.add("a");
h.add("b");
有没有办法在一行代码中做到这一点?例如,它对于最终的静态字段很有用。
我需要创建一个具有初始值的。Set
Set<String> h = new HashSet<String>();
h.add("a");
h.add("b");
有没有办法在一行代码中做到这一点?例如,它对于最终的静态字段很有用。
我使用的速记不是很省时,但适合一行:
Set<String> h = new HashSet<>(Arrays.asList("a", "b"));
同样,这不会节省时间,因为您正在构造一个数组,转换为列表并使用该列表创建一个集合。
在初始化静态最终集时,我通常这样写:
public static final String[] SET_VALUES = new String[] { "a", "b" };
public static final Set<String> MY_SET = new HashSet<>(Arrays.asList(SET_VALUES));
稍微不那么丑陋,效率对于静态初始化无关紧要。
收集文字被安排在Java 7上,但没有进入。所以还没有自动的。
你可以使用番石榴的套装
:
Sets.newHashSet("a", "b", "c")
或者,您可以使用以下语法,这将创建一个匿名类,但它很棘手:
Set<String> h = new HashSet<String>() {{
add("a");
add("b");
}};