在创建时向集合添加元素

2022-09-01 09:07:54

如何在java中创建一个Set,然后在构造时向其添加对象。我想做这样的事情:

testCollision(getObject(), new HashSet<MazeState>(){add(thing);});

但这似乎不太对劲。


答案 1

Java 7 开始,要实例化单元素不可变的 Set,您可以使用:

Collections.singleton(thing);

返回仅包含指定对象的不可变集。返回的集合是可序列化的。

Javadoc reference: Collections.singleton(T)


Java 8中,您可以使用以下内容实例化包含任意数量对象的Set,这是对这个答案的改编:

Stream.of(thing, thingToo).collect(Collectors.toSet());

答案 2

在 Java 中 5

new HashSet<MazeState>(Arrays.asList(thing));

Arrays.asList(thing)将 your 转换为一个元素的列表,然后从该列表集创建。thing

参考资料:
http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#asList(T...)