根据用户 id,将List里面的数据进行分组,记录一下
分别查出id 为10,11,12 中有多少人存在
private void change() {
List<UserBean> mUserList = new ArrayList<UserBean>();
mUserList.add(new UserBean(10, "小米"));
mUserList.add(new UserBean(12, "小福"));
mUserList.add(new UserBean(11, "小天"));
mUserList.add(new UserBean(10, "小哦"));
mUserList.add(new UserBean(10, "小可"));
mUserList.add(new UserBean(12, "小林"));
mUserList.add(new UserBean(11, "小亿"));
//定义一个Map存放分组结果,key为分类名称,value为该分类出现的个数
Map<Integer, List<UserBean>> resultMap = new HashMap<Integer, List<UserBean>>();
for (UserBean mUserBean : mUserList) {
if (resultMap.containsKey(mUserBean.getId())) {
//map中存在此id,将数据存放当前key的map中
resultMap.get(mUserBean.getId()).add(mUserBean);
} else {
//map中不存在,新建key,用来存放数据
List<UserBean> tmpList = new ArrayList<>();
tmpList.add(mUserBean);
resultMap.put(mUserBean.getId(), tmpList);
}
}
//遍历Map集合的方法,输出List分组后的结果
Set<Map.Entry<Integer, List<UserBean>>> entrySet = resultMap.entrySet();
for (Map.Entry<Integer, List<UserBean>> entry : entrySet) {
List<UserBean> m = entry.getValue();
Log.e("分组", entry.getKey() + ":" + entry.getValue());
}
}
运行结果:
分组: 10:[com.bean.UserBean@9b09756, com.bean.UserBean@d0d3d7, com.bean.UserBean@8bfe4c4]
分组: 11:[com.bean.UserBean@5004fad, com.bean.UserBean@636d2e2]
分组: 12:[com.bean.UserBean@664d673, com.bean.UserBean@2388930]
试试看吧。