在C#中,您可以使用以下代码初始化Hashtables(以及许多其他类型的对象) -
Hashtable table = new Hashtable {{1, 1}, {2, 2}};
Run Code Online (Sandbox Code Playgroud)
在Java中是否存在类似的内容,或者您是否必须先声明Hashtable然后手动将项目逐个放入其中?
alp*_*ian 32
这可以在别处解答,但您可以使用匿名子类:
new HashMap<Integer, Integer>() {{ put(1, 1); put(2, 2); }};
Run Code Online (Sandbox Code Playgroud)
很多锅炉板,但仍然是单线:).不幸的是,这也会抱怨缺少serialVersionUID常量,你可以添加或忽略警告.
这称为实例初始化块,此处提供了更多信息.
在Google Guava中,如果您想要一个不可变的地图,您可以使用:
Map<K,V> m = ImmutableMap.of(k1, v1, k2, v2, k3, v3, k4, v4, k5, v5);
Run Code Online (Sandbox Code Playgroud)
最多5个键/值对.
除此之外,您可以使用他们的ImmutableMap.Builder类:
ImmutableMap<String, Integer> WORD_TO_INT = ImmutableMap.builder()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.build();
Run Code Online (Sandbox Code Playgroud)
仍然不如C#好,但流畅的API有点帮助.