Java將List中的實體按照某個字段進行分組的算法


public void test() {

        List<User> list = new ArrayList<>();
        //User 實體 測試用 String id,name;
        //當前測試以id來分組,具體請按開發場景修改
        list.add(new User("1", "1"));
        list.add(new User("1", "2"));
        list.add(new User("2", "2"));
        list.add(new User("2", "3"));
        list.add(new User("2", "4"));
        list.add(new User("3", "3"));
        
        //初始化一個map
        Map<String, List<User>> map = new HashMap<>();
        for(User user : list) {
            String key = user.getId();
            if(map.containsKey(key)) {
                //map中存在以此id作為的key,將數據存放當前key的map中
                map.get(key).add(user);
            } else {
                //map中不存在以此id作為的key,新建key用來存放數據
                List<User> userList = new ArrayList<>();
                userList.add(user);
                map.put(key, userList);
            }
        }
        //分組結束,map中的數據就是分組后的數據
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM