开发者社区 问答 正文

根据Java 8中的相同名称条件将所有哈希图放在一起

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

展开
收起
七天一失眠 2020-04-04 18:43:42 1434 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 做一个优秀的阿里云志愿者

    您可以尝试如下操作:

    Map<String, Map<String, Integer>> grouped = persons.stream()
    .collect(toMap(Person::getName, Person::getAge, (p1, p2) -> {
        p1.putAll(p2);
        return p1;
    }));
    
    -------
    

    答案来源:stackoverflow

    2020-04-04 18:43:53 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答标签:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等