合并List中的相同Code,方便导出
你可以使用Java中的Map来实现相同code的对象的归类。具体实现方法如下:
List<DrShopDevelopIndex> classUsers = entry.getValue(); DrShopDevelpoIndex中有一个字段叫做code. 怎么讲相同的code的对象的Id或者index归类。方便excel导出的时候合并列
- 遍历List<DrShopDevelopIndex> classUsers,将code相同的对象放入同一个List中,并将其作为Map的value,以code为key存入Map中。
- 遍历Map,获取每一个key(即code),以及对应的value(即List<DrShopDevelopIndex>),然后遍历List,将每一个DrShopDevelopIndex对象的Id或index字段取出来,存入一个新的List中。
- 最后,将新生成的List作为某个字段的值添加到DrShopDevelopIndex对象中,并将该对象作为一个记录添加到Excel中即可实现合并列的效果。
下面是一个示例代码:
Map<String, List<DrShopDevelopIndex>> codeMap = new HashMap<>();
for (DrShopDevelopIndex index : classUsers) {
String code = index.getCode();
if (codeMap.containsKey(code)) {
codeMap.get(code).add(index);
} else {
List<DrShopDevelopIndex> list = new ArrayList<>();
list.add(index);
codeMap.put(code, list);
}
}
List<String> idList = new ArrayList<>();
for (List<DrShopDevelopIndex> list : codeMap.values()) {
StringBuilder sb = new StringBuilder();
for (DrShopDevelopIndex index : list) {
sb.append(index.getId()).append(",");
}
String ids = sb.deleteCharAt(sb.length() - 1).toString();
for (DrShopDevelopIndex index : list) {
index.setIds(ids);
}
}
这里假设要将Id字段合并到名为Ids的字段中,如果要合并index字段,则相应地修改即可。