1. 程式人生 > >Java中將List中的實體類按照某個欄位進行分組並存放至Map中

Java中將List中的實體類按照某個欄位進行分組並存放至Map中

假設有實體類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());
	}

​

執行結果:

可以看到達到了了我們的目的