我正在寻找一个类似Map的集合,它允许我以PHP / Python / JavaScript方式创建新对象:
var foo = new Foo({'foo': 'bar'})
我在Java中最接近的是HashMap:
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("test", "one two");
parameters.put("foo", "bar");
这对我来说太冗长了。我想以更简单的方式记下并处理键值对。
我欢迎任何建议 - 创建自己的集合类型,为Map对象创建自己的工厂等。我只想知道写下来创建这样一个集合所需的字符数。
答案 0 :(得分:3)
你有(不是很知名)double brace initialization trick:
Map<String, String> Map = new HashMap<String, String>() {{
put("test", "one two");
put("foo", "bar");
}};
使用java 7 diamond操作符,这更简洁,请参阅:
Map<String, String> Map = new HashMap<>() {{
put("test", "one two");
put("foo", "bar");
}};
答案 1 :(得分:3)
我坚持使用匿名初始化程序时,我看到的一种方法是使用匿名初始化程序:
Map<String, String> parameters = new HashMap<String, String>() {{
put("test", "one two");
put("foo", "bar");
}};
您还可以查看Guava ImmutableMap构建器:http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableMap.Builder.html
如果你想在那里稍微远一点,你可以为JSON(或者只是JSON本身和JSON库)编写一个解析器,然后将Map写成一个字符串。