代码
public static void main(String[] args) {
List<Map> LabelDataGroupByCpn = Lists.newArrayList();
for (int i = 1; i < 9; i++) {
Map map = Maps.newHashMap();
map.put("CPO", "cpo" + i);
map.put("CPN", "cpn" + i);
map.put("QTY", "qty" + i);
map.put("CTN", "ctn" + i);
helindLabelDataGroupByCpn.add(map);
}
if (LabelDataGroupByCpn == null || LabelDataGroupByCpn.size() == 0) {
throw new Exception("***失敗");
}
//五条数据一张标签
Map<String, List<Map>> Groupmap = groupList(LabelDataGroupByCpn, 5);
List<Map> labelInfo = Lists.newArrayList();
for (Map.Entry<String, List<Map>> stringListEntry : Groupmap.entrySet()) {
List<Map> item = stringListEntry.getValue();
Map map = new LinkedHashMap();
for (int i = 1; i < 6; i++) {
for (int j = 1; j <= item.size(); j++) {
Map map_ = item.get(j - 1);
map.put("cpo" + j, String.valueOf(map_.get("CPO")));
map.put("cpn" + j, String.valueOf(map_.get("CPN")));
map.put("qty" + j, String.valueOf(map_.get("QTY")));
map.put("ctn" + j, String.valueOf(map_.get("CTN")));
}
if (!map.containsKey("cpo" + i)) {
map.put("cpo" + i, "");
map.put("cpn" + i, "");
map.put("qty" + i, "");
map.put("ctn" + i, "");
}
}
labelInfo.add(map);
}
if (labelInfo == null || labelInfo.size() == 0) {
throw new Exception("***失敗");
}
}
/**
* 将 list 切成段
*
* @param list
* @return map 每一 Kye 中有 chunkNum 条数据
*/
public static LinkedHashMap groupList(List list, int chunkNum) {
int listSize = list.size();
int toIndex = chunkNum;
LinkedHashMap map = new LinkedHashMap();
int keyToken = 0;
for (int i = 0; i < listSize; i += chunkNum) {
if (i + chunkNum > listSize) {
toIndex = listSize - i;
}
List newList = list.subList(i, i + toIndex);
map.put("keyName" + (keyToken + 1), newList);
keyToken++;
}
return map;
}