首页 / JAVA / Java根据年度将数据分组
Java根据年度将数据分组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java根据年度将数据分组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2046字,纯文字阅读大概需要3分钟。
内容图文
现在有这么一组数据
code | name | year |
---|---|---|
45615654 | x1 | 2018-2019 |
78912648 | x2 | 2018-2019 |
42364322 | x3 | 2017-2018 |
87635225 | x4 | 2016-2017 |
我想在Java后台将数据按year分组该怎么做呢
首先数据一定是根据year排序好的
最后返到前台的数据格式是这样的
原理就是year每换一次map就往里put一组year和list
chargeList: [
{
year: 2018-2019,
list: [
{
code: 45615654,
name: "x1"
},
{
code: 78912648,
name: "x2"
},
]
}
]
第一种实现
想要获得这样的数据需要最外层循环根据不重复year的个数来循环
内层再根据year来判断将什么数据放到list中
最后将year和list装在dataMap里
List<ClientResult> clientMsts = clientMstMapper.selectHeatingData2();
List<Map> dataList = new ArrayList<>();
String year = "";
List<String> yearList = new ArrayList<>();
for (ClientResult c : clientMsts) {
if (!year.equals(c.getYear())) {
year = c.getYear();
yearList.add(year);
}
}
for (int i = 0; i < yearList.size(); i++) {
Map<String, Object> map = new HashMap<>();//装的是code和name
Map<String, Object> dataMap = new HashMap<>();//装year和list
List<Map> list = new ArrayList<>();
year = yearList.get(i);
for (ClientResult c : clientMsts) {
if (year.equals(c.getYear())) {
map.put("code", c.getCode());
map.put("name", c.getName());
list.add(map);
}
}
dataMap.put("year", year);
dataMap.put("list", list);
dataList.add(dataMap);
}
Map<String, Object> map = new HashMap<>();
map.put("dataList", dataList);
第二种实现
当year不相同的时候往dataMap中put一组数据
List<ClientResult> clientMsts = clientMstMapper.selectHeatingData2();
List<Map> dataList = new ArrayList<>();
String year = "";
List<Map> lists = null;
for (ClientResult c : clientMsts) {
Map<String, Object> dataMap= new HashMap<>();
boolean a = false;
if (!year.equals(c.getClientPaymentYear())) {
year = c.getClientPaymentYear();
dataMap.put("year", year);
lists = new ArrayList<>();
a = true;
}
Map map = new HashMap();
map.put("code", c.getClientMstCode());
map.put("name", c.getHousingEstateName());
lists.add(map2);
if (a) {
dataMap.put("data", lists);
dataList.add(map);
}
}
Map<String, Object> map = new HashMap<>();
map.put("dataList", dataList);
这就是Java后台根据年度分组的详细过程,可能还有别的更好地办法,欢迎一起讨论
内容总结
以上是互联网集市为您收集整理的Java根据年度将数据分组全部内容,希望文章能够帮你解决Java根据年度将数据分组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。