一、
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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = 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) {
HashMap<String, String> map = new HashMap<>();
HashMap<String, String> 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) {
HashMap<String, String> map = new HashMap<>();
HashMap<String, String> 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) {
HashMap<String, String> map = new HashMap<>();
HashMap<String, String> 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}










