關注 “弋凡”(YiFan)微信公衆號吧 記錄簡單筆記 做你的最愛
問題產生背景:需要按照月份得到相關對象
(此篇文章純屬個人看法)
比如來說:(按每一天來算)
1月第一天我睡了一天,1月第二天我吃了一天
2月玩了一個月,
3月每一天都在學習呀~
怎麼統計每個月都做了什麼
那麼對應數據庫中
有一種方法是按照時間來查詢然後把查詢出來的都存在Map集合中—這顯然也是一種方法 但是好像不是很智能的樣子感覺,問題你如何判斷時間來進行查詢吶?
於是乎有了這個問題
如何解決?
重新了HashMap的put方法
public class MHashMap<K,V> extends HashMap<K,V> {
/*HashMap實現相同key,對value的不同操作存放在集合中*/
@Override
public V put(K key, V value) {
V newV = value;
List<V> list = new ArrayList<>();
// containsKey - -- 判斷是否包含指定的鍵名
if(containsKey(key)){
List v = (List)get(key);
v.add(value);
list = v;
}else {
list.add(newV);
}
return super.put(key,(V)list);
}
}
controller 中
public ResultDTO<Plan> getPlans(){
List<Plan> planList = planService.list();
MHashMap<String, Plan> hashMap = new MHashMap<>();
ResultDTO<Plan> resultDTO = new ResultDTO<>();
if(!StringUtils.isEmpty(planList)){
for (int i = 0; i < planList.size(); i++) {
hashMap.put(planList.get(i).getPGmtCreate()
.toString().split("-")[1],planList.get(i));
}
resultDTO.setMapObj(hashMap);
resultDTO.setMsg("請求成功");
resultDTO.setCode(200);
return resultDTO;
}else {
resultDTO.setMapObj(null);
resultDTO.setMsg("請求失敗");
resultDTO.setCode(400);
return resultDTO;
}
}
請求結果如圖所示
特此記錄
end —