java - 具有方便符号的键值集合

标签 java collections dictionary

我正在寻找一个类似 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 对象创建自己的工厂等。我只是想减少创建这样一个集合所需的字符数。

最佳答案

我见过的一种方法是,当坚持使用基本 JDK 时,只使用匿名初始化器:

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 作为字符串编写。

关于java - 具有方便符号的键值集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7057606/

相关文章:

java - Collection.contains() -> 获取项目

c++ - 如何检索添加到由其父类(super class)对象组成的集合中的派生对象?

java - 如何在 Intellij Idea 中提取私有(private)静态常量?

java - 每 20 分钟分析一次程序行为

java - Java中的集合可以容纳不同的子类吗?

python - 添加到购物篮,并从库存中取出等值产品

python - 如何从 python 列表中的字符串中删除双引号?

java - 使用apache-camel多播将一个文件上传到不同位置

java - CMake 对 `JNI_CreateJavaVM' 的 undefined reference

php - 如何在不覆盖任何值的情况下合并两个集合