commons-collections集合类型-MultiMap

末蓝、 2022-08-14 04:52 32阅读 0赞

在日常的开发工作中,我们有的时候需要构造像Map>或者Map>这样比较复杂的集合类型的数据结构,如果是自己写,需要额外大量的代码,此时,就可以使用到commons-collections里面的MultiMap

代码如下

首先加入依赖:

  1. <dependency>
  2. <groupId>commons-collections</groupId>
  3. <artifactId>commons-collections</artifactId>
  4. <version>3.2.2</version>
  5. </dependency>
  6. package org.osc.hazelcast.coll;
  7. import java.util.HashMap;
  8. import java.util.HashSet;
  9. import org.apache.commons.collections.MultiMap;
  10. import org.apache.commons.collections.map.MultiValueMap;
  11. public class MultiMapTest
  12. {
  13. static void list()
  14. {
  15. /**
  16. * 默认是取出来的是list
  17. */
  18. MultiMap mm = new MultiValueMap();
  19. mm.put("唐朝", new User("1", "李渊"));
  20. mm.put("唐朝", new User("2", "李世民"));
  21. mm.put("唐朝", new User("3", "李治"));
  22. mm.put("唐朝", new User("4", "李显"));
  23. mm.put("唐朝", new User("4", "李旦"));
  24. mm.put("宋朝", new User("5", "赵匡胤"));
  25. mm.put("宋朝", new User("6", "赵光义"));
  26. System.out.println(mm.get("唐朝"));
  27. System.out.println(mm.get("唐朝").getClass());
  28. }
  29. static void set()
  30. {
  31. /**
  32. * 如果取出来的是set , 需要调用decorate方法
  33. */
  34. MultiMap mm = MultiValueMap.decorate(new HashMap<String, User>(), HashSet.class);
  35. mm.put("唐朝", new User("1", "李渊"));
  36. mm.put("唐朝", new User("2", "李世民"));
  37. mm.put("唐朝", new User("3", "李治"));
  38. mm.put("唐朝", new User("4", "李显"));
  39. mm.put("唐朝", new User("4", "李旦"));
  40. mm.put("宋朝", new User("5", "赵匡胤"));
  41. mm.put("宋朝", new User("6", "赵光义"));
  42. System.out.println(mm.get("唐朝"));
  43. System.out.println(mm.get("唐朝").getClass());
  44. }
  45. public static void main(String[] args)
  46. {
  47. list();
  48. System.out.println("-----------------");
  49. set();
  50. }
  51. }
  52. class User
  53. {
  54. private String id;
  55. private String name;
  56. public int hashCode() {
  57. return id.hashCode();
  58. }
  59. public boolean equals(Object obj)
  60. {
  61. User user = (User)obj;
  62. return this.id.equals(user.id);
  63. }
  64. public User(String id, String name)
  65. {
  66. this.id = id;
  67. this.name = name;
  68. }
  69. public String toString()
  70. {
  71. return "User [id=" + id + ", name=" + name + "]";
  72. }
  73. }

运行,输出如下:

[User [id=1, name=李渊], User [id=2, name=李世民], User [id=3, name=李治], User [id=4, name=李显], User [id=4, name=李旦]]
class java.util.ArrayList
-————————
[User [id=1, name=李渊], User [id=2, name=李世民], User [id=3, name=李治], User [id=4, name=李显]]
class java.util.HashSet

发表评论

表情:
评论列表 (有 0 条评论,32人围观)

还没有评论,来说两句吧...

相关阅读