我是Java新手,我想弄清楚用什么Java集合来平衡我从JSON到Java集合的值,但不知道要使用哪个集合。以下是我从JSON获得的内容:
用户:蒂姆 产品:啤酒 用户:蒂姆 产品:面包 用户:蒂姆 产品:牛奶 用户:蒂姆 产品:肥皂 用户:迈克尔 产品:肥皂 用户:迈克尔 产品:咖啡 用户:迈克尔 产品:汽车用户:Wayne 产品:面包
用户:Wayne 产品:肥皂
正如您所看到的,我的用户有以下产品: 蒂姆:啤酒,面包,牛奶,肥皂 迈克尔:肥皂,咖啡,汽车 韦恩:面包,肥皂
用于存储这些产品的最佳集合是什么,以便我可以确定一个用户持有的所有产品?
例如,通过提供Key = Michael,我将获得Soap,Coffee,Car。
非常感谢,
答案 0 :(得分:4)
我会使用Multimap,因为一个人可能有多个产品。
您可以在http://www.leveluplunch.com/java/examples/guava-multimap-example/
找到一个相当简单的示例所以你最终会得到这样的东西:
Multimap<String,String> myMap = new Multimap<>();
myMap.put("Tim", "Beer");
myMap.put("Tim", "Bread");
myMap.put("Tim", "Milk");
然后看看与Tim有关的产品:
List<String> products = myMap.get("Tim");
for(String product: products){
System.out.println(product);
}
这会打印
Beer
Bread
Milk
答案 1 :(得分:1)
取决于您对数据的使用情况。看起来像地图将是一个不错的选择。