首页 > 代码库 > Map 的主要实现类:HashMap

Map 的主要实现类:HashMap

  1. public class TestHashMap {
  2. public static void main(String[] args) {
  3. Map map = new HashMap();
  4. Map map1 = new HashMap();
  5. // 增删改查操作
  6. // 1.将指定的值与此映射中的指定键关联(若当前 key 已存在值,则替换并返回之前 key 对应的值 value 的类型):
  7. // V put(K key,V value);
  8. System.out.println(map.put("c", 21));// null
  9. System.out.println(map.put("c", 23));// 21
  10. System.out.println(map.put(null, 19));// null
  11. System.out.println(map.put(4, 25));// null
  12. System.out.println(map);// {null=19, c=23, 4=25}
  13. // 2.返回当前Map已有的映射个数:int size();
  14. System.out.println(map.size());// 3
  15. // 3.如果存在此 key 的映射关系,则将其移除,返回之前与该 key 关联的值,如果没有则返回 null:
  16. // V remove(Object key);
  17. // 注意:返回 null 不一定代表映射没有该 key 的值,也可能是该 key 的值本身就是 null
  18. System.out.println(map.remove(4));// 25
  19. System.out.println(map.remove(null));// 19
  20. System.out.println(map);// {c=23}
  21. // 4.从指定映射中将所有映射关系复制到此映射中(等效于执行多个 put ):void putAll(Map m);
  22. map.put(56, "ss");
  23. map.put(5, "tt");
  24. System.out.println(map);// {c=23, 5=tt, 56=ss}
  25. map1.put(5, "ww");
  26. System.out.println(map1);// {5=ww}
  27. map1.putAll(map);
  28. System.out.println(map1);// {c=23, 5=tt, 56=ss}
  29. // 5.从此映射中移除所有映射关系:void clear();
  30. map1.clear();
  31. System.out.println(map1.size());// 0
  32. // 6.返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回 null:V get(Object key);
  33. System.out.println(map.get("c"));// 23
  34. System.out.println(map.get("d"));// null
  35. // 7.如果此映射包含指定键的映射关系,则返回 true:boolean containsKey(Object key);
  36. System.out.println(map.containsKey(5));// true
  37. // 8.如果此映射将一个或多个键映射到指定值,则返回 true:boolean containsValue(Object value);
  38. System.out.println(map.containsValue("ss"));// true
  39. // 9.如果此映射未包含任何映射关系,则返回 true:boolean isEmpty();
  40. System.out.println(map1.isEmpty());// true
  41. // 10.比较指定的对象与此映射是否相等。如果给定的对象也是一个映射,并且这两个映射表示相同的映射关系,则返回 true:
  42. // boolean equals(Object o);
  43. Map map2 = new HashMap();
  44. map2.putAll(map);
  45. System.out.println(map2.equals(map));// true
  46. // 元视图操作
  47. Map map3 = new HashMap();
  48. map3.putAll(map2);
  49. map3.put("sp", "5e");
  50. map3.put(2, "ef");
  51. System.out.println(map3);// {56=ss, 2=ef, c=23, 5=tt, sp=5e}
  52. // 1.返回此映射中包含的键的 Set 视图:Set keySet();
  53. Set set = map3.keySet();
  54. for (Object o : set) {
  55. System.out.println(o);
  56. } // 56 2 c 5 sp
  57. // 2.返回此映射中包含的值的 Collection 视图:Collection values();
  58. Collection collection = map3.values();
  59. Iterator i = collection.iterator();
  60. while (i.hasNext()) {
  61. System.out.println(i.next());
  62. } // ss ef 23 tt 5e
  63. // 3.返回此映射中包含的映射关系(Entry)的 Set 视图:Set entrySet();
  64. Set set1 = map3.entrySet();
  65. for (Object o : set1) {
  66. System.out.println(o);
  67. } // 56=ss 2=ef c=23 5=tt sp=5e
  68. // 另外两个遍历映射的方法:
  69. for (Object o : set1) {
  70. Map.Entry entry = (Map.Entry) o;
  71. System.out.println(entry);
  72. } // 56=ss 2=ef c=23 5=tt sp=5e
  73. for (Object o : set) {
  74. System.out.println(o + "=" + map3.get(o));
  75. } // 56=ss 2=ef c=23 5=tt sp=5e
  76. }
  77. }

Map 的主要实现类:HashMap