Java8实现以对象的某属性分组并对分组后的结果list


转自:https://www.cnblogs.com/wwjj4811/p/13246031.html

1、对象类

@Data
@AllArgsConstructor
public class User {
    private Integer age;
    private String name;
}

2、普通写法

//构建的list数据
private
List<User> users =Arrays.asList(new User(20,"张三"),new User(18,"李四"),new User(20,"王五"));
@Test
public void testGroup(){ Map<Integer,List<User>> userMap = new HashMap<>(); users.forEach(user->{ List<User> users = userMap.get(user.getAge()); if(users==null){ users = new ArrayList<>(); users.add(user); userMap.put(user.getAge(),users); }else{ users.add(user); } }); userMap.forEach((x,y)->{ System.out.println(x+":"+y); }); }

3、Java8 写法

@Test
public void testGroup2(){
    Map<Integer,List<User>>  userMap =  new HashMap<>();
    users.stream().collect(Collectors.groupingBy(User::getAge,Collectors.toList()))
            .forEach(userMap::put);
    userMap.forEach((x,y)->{
        System.out.println(x+":"+y);
    });
}

4、运行结果

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM