List<Person> ps = new ArrayList<>(); Person person = new Person(1,"小明",23); Person person1 = new Person(2,"小花",24); Person person2 = new Person(3,"小聪",25); Person person3 = new Person(3,"小开",23); Person person4 = new Person(3,"小某",24); Person person5 = new Person(3,"小欧",25); ps.add(person); ps.add(person2); ps.add(person1); ps.add(person3); ps.add(person4); ps.add(person5); //按名字分组 Map<Integer, List<Person>> collect = ps.stream().collect(Collectors.groupingBy(Person::getAge)); HashMap<Integer, HashMap<Integer, List<Person>>> hashMaps = new HashMap<>(); //【位置改变前】这段代码应该放在for循环里面 不然获取的地址是同一个(解决问题) //HashMap<Integer, List<Person>> hashMap = new HashMap<>(); for (Integer integer : collect.keySet()) { //【位置改变后】 HashMap<Integer, List<Person>> hashMap = new HashMap<>(); hashMap.put(integer,collect.get(integer)); hashMaps.put(integer+9,hashMap); } Object o = JSON.toJSON(hashMaps); System.out.println(o); 这个应该是初级问题了 在此记录下 基础不能忘呀