2015-12-02 106 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)); 
相關問題