在这种情况下使用什么Java Collection?

时间:2015-07-16 21:40:49

标签: java android collections

我是Java新手,我想弄清楚用什么Java集合来平衡我从JSON到Java集合的值,但不知道要使用哪个集合。以下是我从JSON获得的内容:

用户:蒂姆 产品:啤酒

用户:蒂姆 产品:面包

用户:蒂姆 产品:牛奶

用户:蒂姆 产品:肥皂

用户:迈克尔 产品:肥皂

用户:迈克尔 产品:咖啡

用户:迈克尔 产品:汽车

用户:Wayne 产品:面包

用户:Wayne 产品:肥皂

正如您所看到的,我的用户有以下产品: 蒂姆:啤酒,面包,牛奶,肥皂 迈克尔:肥皂,咖啡,汽车 韦恩:面包,肥皂

用于存储这些产品的最佳集合是什么,以便我可以确定一个用户持有的所有产品?

例如,通过提供Key = Michael,我将获得Soap,Coffee,Car。

非常感谢,

2 个答案:

答案 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)

取决于您对数据的使用情况。看起来像地图将是一个不错的选择。