HashMap实现相同key,对value的操作
生活随笔
收集整理的這篇文章主要介紹了
HashMap实现相同key,对value的操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關注 “弋凡”(YiFan)微信公眾號吧 記錄簡單筆記 做你的最愛
問題產生背景:需要按照月份得到相關對象
(此篇文章純屬個人看法)
比如來說:(按每一天來算)
1月第一天我睡了一天,1月第二天我吃了一天
2月玩了一個月,
3月每一天都在學習呀~
怎么統計每個月都做了什么
那么對應數據庫中
有一種方法是按照時間來查詢然后把查詢出來的都存在Map集合中—這顯然也是一種方法 但是好像不是很智能的樣子感覺,問題你如何判斷時間來進行查詢吶?
于是乎有了這個問題
如何解決?
重新了HashMap的put方法
public class MHashMap<K,V> extends HashMap<K,V> {/*HashMap實現相同key,對value的不同操作存放在集合中*/@Overridepublic 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 —
快來關注“弋凡”微信公眾號吧
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的HashMap实现相同key,对value的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot 自动配置
- 下一篇: 百度翻译API的使用