1. 程式人生 > 其它 >把工單歷史表中的資料,按照工單進行分類,每一批工單的資料放在同一個 key 中

把工單歷史表中的資料,按照工單進行分類,每一批工單的資料放在同一個 key 中

/**
* 把工單歷史表中的資料,按照工單進行分類,每一批工單的資料放在同一個key
* 將物件列表按名稱分類成 Map(分類名必與物件的某 get 方法的後的名一致<:get(name) 實際是 get("ticketId")>
*
* @param list sql資料集合
* @param name HashMap<String,Object> 的某個 key ,實際上就是資料表中的某個欄位
* @return Map<String, List < T>>
*/
public static Map<String, List<HashMap<String, Object>>> objListToMapClassificationByName(List<HashMap<String, Object>> list, String name) {
Map<String, List<HashMap<String, Object>>> resultMap = Maps.newHashMap();

for (HashMap<String, Object> obj : list) {
try {
String ticketId = obj.get(name).toString();
if (StringUtil.isEmpty(ticketId)) {
continue;
}
List<HashMap<String, Object>> tempList = null;
if (!resultMap.containsKey(ticketId)) {
tempList = new ArrayList<>();
} else {
tempList = resultMap.get(ticketId);
}
tempList.add(obj);
resultMap.put(ticketId, tempList);
} catch (Exception e) {
e.printStackTrace();
}
}
return resultMap;
}

案例:
//聯表查詢工單資料
List<HashMap<String, Object>> list = reportAllSqlMapper.selectAllSql(stringSql);

//拿到分類後的資料
Map<String, List<HashMap<String, Object>>> ticketHashMap = objListToMapClassificationByName(list, "ticketId");
上面的意思是把 ticketId 相同的資料都放到同一個 key 對應的 value 上。
作者:天下沒有收費的bug
出處:https://www.cnblogs.com/LoveBB/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。