一、
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value
二、添加元素
方法:HashMap添加键值对(key-value)可以使用 put() 方法
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("1","1"); map.put("2","2"); map.put("3","3"); System.out.println(map); }
运行结果:
{1=1, 2=2, 3=3}
三、访问元素
方法:使用 get(key) 方法来获取 key 对应的 value
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("1","1"); map.put("2","2"); map.put("3","3"); String s1 = map.get("1"); String s2 = map.get("2"); String s3 = map.get("3"); System.out.println(s1); System.out.println(s2); System.out.println(s3); }
运行结果:
1
2
3
四、删除元素
方法:使用 remove(key) 方法来删除 key 对应的键值对(key-value)
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("1","1"); map.put("2","2"); map.put("3","3"); map.remove("1"); System.out.println(map); }
运行结果:
{2=2, 3=3}
五、计算map的大小
方法:size()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("1","1"); map.put("2","2"); map.put("3","3"); int size = map.size(); System.out.println(size); }
运行结果:
3
六、迭代 HashMap
可以使用 for-each 来迭代 HashMap 中的元素。
如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); for (String s : map.keySet()) { System.out.println("for循环----"+s); } map.forEach((k,v)->{ System.out.println("foreach-----"+k+"----"+v); }); }
运行结果:
for循环----A
for循环----B
for循环----C
foreach-----A----1
foreach-----B----2
foreach-----C----3
七、删除 hashMap 中的所有键/值对
方法:clear()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); map.clear(); System.out.println(map); }
运行结果:
{ }
八:复制一份 hashMap
方法:clone()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); Object clone = map.clone(); System.out.println("原来的"+map); System.out.println("复制一份"+clone); }
运行结果:
原来的{A=1, B=2, C=3}
复制一份{A=1, B=2, C=3}
九、判断 hashMap 是否为空
方法:isEmpty()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); HashMap map1 = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); boolean empty1 = map.isEmpty(); boolean empty2 = map1.isEmpty(); System.out.println(empty1); System.out.println(empty2); }
运行结果:
false
true
十、替换 hashMap 中是指定的 key 对应的 value
方法:replace()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); HashMap map1 = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); System.out.println("替换前----"+map); map.replace("A", "100"); System.out.println("替换后----"+map); }
运行结果:
替换前----{A=1, B=2, C=3}
替换后----{A=100, B=2, C=3}
十一、添加键值对到 hashMap 中
方法:merge()
代码:
public static void main(String[] args) { HashMapmap = new HashMap<>(); HashMap map1 = new HashMap<>(); map.put("A","1"); map.put("B","2"); map.put("C","3"); System.out.println("添加前----"+map); map.merge("D", "4", (oldValue, newValue) -> oldValue + newValue); System.out.println("添加后----"+map); }
运行结果:
添加前----{A=1, B=2, C=3}
添加后----{A=1, B=2, C=3, D=4}