java 中map去重合并

例如创建一个如下map对象Map >,外层的map对象的key重复一个或多次,现在需要将相同key的value全部整合在TreeMap里面去,保证外层的key唯一。需求是由于treeMap里面的key是一个时间戳,目标需要截取treemap里面的一个时间段的值。
(本人的GitHub链接https://github.com/Donjhon/spring-boot-demo.git,现在还在发展期,将自己工作学习的点滴共享出来)
   实现代码如下所示:
 
  1. package com.pcitc.imp.example.util;
  2. import java.util.HashMap;
  3. import java.util.IdentityHashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import java.util.Map.Entry;
  7. import java.util.TreeMap;
  8. public class MapTest {
  9. public static void main(String[] args) {
  10. Map<Object, TreeMap<String, Object>> tree = new IdentityHashMap<>();
  11. TreeMap<String, Object> test0 = new TreeMap<>();
  12. test0.put("11:01", 111);
  13. test0.put("11:02", 222);
  14. TreeMap<String, Object> test1 = new TreeMap<>();
  15. test1.put("11:03", 333);
  16. test1.put("11;04", 444);
  17. String str1 = new String("1");
  18. String str2 = new String("1");
  19. String str3 = new String("2");
  20. String str4 = new String("2");
  21. tree.put(str1, test0);
  22. tree.put(str2, test1);
  23. tree.put(str3, test0);
  24. tree.put(str4, test1);
  25. System.out.println(tree);
  26. Map<Object, TreeMap<String, Object>> map000 = mapK(tree);
  27. System.out.println(map000);
  28. }
  29. @SuppressWarnings("rawtypes")
  30. public static Map<Object, TreeMap<String, Object>> mapK(Map<Object, TreeMap<String, Object>> map) {
  31. Map<Object, TreeMap<String, Object>> tree = new HashMap<>();
  32. for (Entry<Object, TreeMap<String, Object>> vo : map.entrySet()) {
  33. Object key1 = vo.getKey();
  34. if (!tree.containsKey(key1)) {
  35. tree.put(key1, vo.getValue());
  36. } else {
  37. TreeMap<String, Object> map1 = vo.getValue();
  38. Iterator<?> iter = map1.entrySet().iterator();
  39. while (iter.hasNext()) {
  40. Map.Entry entry = (Map.Entry) iter.next();
  41. String key = (String) entry.getKey();
  42. Object integ = (Integer) entry.getValue();
  43. tree.get(key1).put(key, integ);
  44. }
  45. }
  46. }
  47. return tree;
  48. }
  49. }
posted @ 2017-11-14 14:06  登登码站  阅读(549)  评论(0编辑  收藏  举报