我对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
基本上,当数字相同时,则需要将值分组在同一数字下。这就是询问如何通过使用任何集合来执行这种战略性输出来实现的。任何帮助表示赞赏。
正如其他人所建议的,如果您只想坚持JDK集合,则可以使用Map<Integer, List<Object>>
。
甚至还有一种结构都可以帮助您做到这一点。
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 1);
map.put("c", 2);
map.put("d", 1);
map.put("e", 3);
map.put("f", 3);
map.put("g", 3);
//Using Java 7
Set<Integer> set = new HashSet<Integer>();
Map<Integer, List<String>> finalList = new HashMap<Integer, List<String>>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
set.add(entry.getValue());
finalList.put(entry.getValue(), new ArrayList<String>());
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
for (Integer value : set) {
if (value.equals(entry.getValue())) {
List<String> values = finalList.get(value);
values.add(entry.getKey());
}
}
}
System.out.println("Result : " + finalList.toString());