List中取出相同属性值

需求:将List对象中相同的ShippingRuleName为key,所对应的所有id为val。

如上,处理成{"500": 2,"344344": 12,"DWD": "19,20,21,22","5件包邮": "3,4","test1111111": "23,24"}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
List<BasicTemplate> basicTemplates = Service.queryTemplateGroupByName(param);
Map<String, Object> map = new HashMap<>();
for (BasicTemplate order : basicTemplates) {
String shippingRuleName = order.getShippingRuleName();//rulename
Integer id = order.getId();// id
// 如果map中没有当前的shippingRuleName
if (!map.containsKey(shippingRuleName)) {
// 将shippingRuleName和id添加进map中
map.put(shippingRuleName, id);
} else {
// 取出shippingRuleName对应的id值
Object o = map.get(shippingRuleName);
StringBuffer sb2 = new StringBuffer();
// 在之前的id后添加新的id,并以逗号隔开
sb2.append(o).append(",").append(id);
// 将拼接后的新id和之前shippingRuleName重新放入map中
map.put(shippingRuleName, sb2.toString());
}
}
赏个🍗吧
0%