Map 对象可以存储不同类型的键值对象 以下介绍List集合的存储和遍历
public List<AgendaDto> packageAgendaMap() {
// 声明一个Map对象 存储List
Map<String, List<Agenda>> map = new LinkedHashMap<>();
// 查询List 该List集合中每一个对象包含一个相同的可以进行分组的值 如:Day1 和 Day2
// 根据这两个值作为Map对象的键名将List集合分组并存储到Map对象中
List<Agenda> all = agendaDao.findGroupByAgendaDay();
// 遍历List集合
all.forEach(agenda -> {
// Map存储 List集合
// 判断Map中是否存在以 agenda.getAgendaDay()为键名的List集合,
// 不存在则重新实例化List,存在即添加到List集合并放入Map中
List<Agenda> agendaList = map.get(agenda.getAgendaDay());
if (agendaList == null) {
agendaList = new ArrayList<>();
}
agendaList.add(agenda);
map.put(agenda.getAgendaDay(), agendaList);
});
// Map 遍历读取List并存放在 AgendaDto 对象中
List<AgendaDto> agendaDTOs = new ArrayList<>();
for (Map.Entry<String, List<Agenda>> entry : map.entrySet()) {
AgendaDto agendaDto = new AgendaDto();
// entry.getKey() 获取Map的key并付给agendaDto对象
agendaDto.setAgendaDay(entry.getKey());
// entry.getValue() 获取Map的value并付给agendaDto对象
agendaDto.setAgendaList(entry.getValue());
agendaDTOs.add(agendaDto);
}
return agendaDTOs;
}
Map遍历读取存放的对象 AgendaDto 声明
@Data
public class AgendaDto {
private String agendaDay;
private List<Agenda> agendaList;
}