public class PersonAgg {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
Map<String, Integer> age = new HashMap<>();
Map<String, Integer> age2 = new HashMap<>();
Map<String, Integer> age3 = new HashMap<>();
Map<String, Integer> age4 = new HashMap<>();
age.put("One", 1);
age2.put("Two", 2);
age3.put("Three", 3);
age4.put("Four", 4);
persons.add(new Person("Ajay", age));
persons.add(new Person("Vijay", age2));
persons.add(new Person("Ajay", age3));
persons.add(new Person("Vijay", age4));
}
}
class Person {
public Person(String name, Map<String, Integer> age) {
super();
this.name = name;
this.age = age;
}
private String name;
private Map<String, Integer> age;
现在我想要输出: {name : Ajay, HashMapValue : {age :["One",1],} age3 :["Three",3]}, {name : Vijay , HashMapValue : {age2 :["Two",2],} age4 :["Four",4]}
问题来源:stackoverflow
您可以尝试如下操作:
Map<String, Map<String, Integer>> grouped = persons.stream()
.collect(toMap(Person::getName, Person::getAge, (p1, p2) -> {
p1.putAll(p2);
return p1;
}));
-------
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。