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