2015-12-02 61 views
2

我对Java很陌生,我试图根据数字对象进行分组,但我无法做到。这里是例子:如何使用集合按java中的对象进行分组?

SomeCollection<Integer,String> t=new SomeCollection<Integer,String>(); 
t.put("1","a"); 
t.put("1","b"); 
t.put("2","c"); 

output: 
1 - a,b 
2 - c 

基本上,当数字是相同的,那么值需要在同一数字下分组。这全是关于如何通过使用任何收藏来实现这种战略输出来实现的。任何帮助表示赞赏。

+1

改为使用'SomeCollectiona <整数,列表>'并将值添加到列表中。 – SomeJavaGuy

+1

我可以使用TreeMap来实现此TreeMap >? –

+0

是的,你只需要检查特定的整数是否有一个列表,如果没有初始化它,然后将值添加到列表中。 – SomeJavaGuy

回答

0

甚至有一个构造会帮助你做到这一点。

Map<String, Integer> map = new HashMap<>(); 
map.put("a", 1); 
map.put("b", 1); 
map.put("c", 2); 

Map<Integer, List<String>> groupedMap = map.keySet().stream() 
     .collect(Collectors.groupingBy(map::get)); 
相关问题