HashMap做为一种好的算法工具, 由Key和Value结队组成,一个Key对应一个Value,可以成对的加入到HashMap中,只要用map.get(key)就可以得到对应的Value值。

非常适合通过学号查找成绩,通过编号查找书籍等等,所以其中Key是不能重复的,否则后面的会覆盖前面的,这里我们通过一个例子来介绍几个有效的使用方法

import java.util.HashMap;
import java.util.Map;
public class Hashmap {
	public static void main(String[] args) {
		Map<String, Integer> map = new HashMap<>();
		map.put("a", 1);
		map.put("b", 2);
		map.put("c", 3);
		//这使得b被覆盖
		map.put("b", 4);
		System.out.println(map.get("b"));
		System.out.println("是否包含a "+map.containsKey("a"));
		System.out.println("是否包含5 "+map.containsValue(5));
		//map.keySet()返回所有的key值,用String key来遍历
		for(String key: map.keySet()) {
// map.get(key)获得键值为key的Value
			System.out.println(key+"-->"+map.get(key).toString());
		}
		//a被替换,类似于map.put("a",10)
		map.replace("a", 10);
		System.out.println("替换a后"+map);
		//a表示要更新的key,10表示更新的大小,后面就是更新方法,表示原来a的value加10
		//merge的作用就是用某种方法更新原来的value值
		map.merge("a", 10, (oldval,param)->(Integer)oldval+(Integer)param);
		System.out.println("merge使得 a的value+10后"+map);
		//如果key键为java的,就添加,并且value为key键的长度
		map.computeIfAbsent("java", (key)->((String)key).length());
		System.out.println("添加java键后的map"+map);
	}
}

方便大家理解,输出结果如下

4
是否包含a true
是否包含5 false
a-->1
b-->4
c-->3
替换a后{a=10, b=4, c=3}
merge使得 a的value+10后{a=20, b=4, c=3}
添加java键后的map{a=20, b=4, java=4, c=3}

关于使用方法和其几个方法的作用,注释都详尽写了,可以看出,HashMap的方法很多很细,上面列举的只是其中几个,光看方法名就可以大致猜出,所以更多的不是记住这些方法,而是熟练运用,并且知道怎么用,对哪些问题有用