Java-HashMap
HashMap(哈希表)的理解
-
其增删改查 在不考虑“哈希冲突时的时间复杂度仅有O(1)
-
主干是 数组 ,也就是通过某个”下标”即索引从而实现一次定位
-
哈希冲突 是指:虽然两个元素的 key 不同,但是他们的实际地址 却相同,即冲突
HashMap的使用
-
创建一个HashMap
1
Map<Key,Value> map = new HashMap<>();
这里的接口类型为Map,可以使程序更加灵活。当决定更换实现的时候,只需要改变构造器中类型的名称
例如:如果这个时候想将哈希表换为”黑红树结构”
1
Map<Key,Value> map = new TreeMap<>();
-
存入一个 键值对 ,put(key,value)
map.put("Martin","CoolBoy"); map.put("James","好人"); map.put("大学物理","son of bitch");
此时这个哈希表中的数据有:
key value Martin CoolBoy James 好人 -
此时调用get方法, get(key)
String dis = map.get("Martin"); System.out.println(dis);
此时的控制台会输出 map 中 Martin 所对应的 value —->CoolBoy
-
通过containsKey 和 containsValue 可判断是否存在某个key、value值 containsKey(key),containsValue(value)
1 2
map.containsKey("Martin");//如果存在则返回true map.containsValue("好人");//如果不存在则返回false
-
遍历这个哈希表时,keySet()
1 2 3
for(Object key : map.keySet()){ System.out.println(key + "--->" + map.get (key)); }
map.keySet()即表示此哈希表中所有键值对集合
-
删除某个数据,remove(key)
1 2
map.remove("大学物理"); System.out.println("never see you");