Java中將List中的實體類按照某個欄位進行分組並存放至Map中
阿新 • • 發佈:2019-01-02
假設有實體類User,裡面有欄位id,我們將相同id的User進行分組,並存放在Map中。(例子不是很恰當,但很能說明問題)
public static void main(String[] args) { List<User> list = new ArrayList<>(); list.add(new User(1, 1)); list.add(new User(1, 2)); list.add(new User(2, 1)); list.add(new User(2, 3)); list.add(new User(2, 2)); list.add(new User(3, 1)); Map<Integer, List<User>> map = new HashMap<>(); for(User user : list){ if(map.containsKey(user.getId())){//map中存在此id,將資料存放當前key的map中 map.get(user.getId()).add(user); }else{//map中不存在,新建key,用來存放資料 List<User> tmpList = new ArrayList<>(); tmpList.add(user); map.put(user.getId(), tmpList); } } System.out.println(map.toString()); }
執行結果:
可以看到達到了了我們的目的