创建hashmap对象
HashMap<String,Integer> hashMap = new HashMap<>();
添加键值对
如果key已经存在,则返回旧的value,并将新的value存到该key中,如果key不存在,返回null
1、put方法:覆盖原有的value
hashMap.put(key,value);
2、putIfAbsent方法:不会覆盖原有的value。
hashMap.putIfAbsent(key,value);
该方法首先会判断key是否存在,如果存在且value不为null,则不会覆盖原有的value,并返回原来的value;如果key不存在或者key的value为null,则会put进新值,并返回null。
另外,两种方法当key=null时,并不会抛出异常,而是按照一个特殊的方法进行存储。
删除元素
remove(key)
:若存在该key,则删除成功,返回被删除的key对应的value,否则返回null。
remove(key,value)
:删除成功则返回true,否则返回false。
hashMap.remove("bb");
hashMap.remove("aa",5);
判断key或value是否存在
containsKey(key)
:若存在该key,则返回true。
contiansValue(value)
:若存在该value,则返回true。
hashMap.containsKey("aa");
hashMap.containsValue(1);
获取对应key的value值
get(key)
:返回对应key的value值,若不含有对应key则返回null。
getOrDefault(key,defaultValue)
:返回对应key的value,如果key不存在,则返回defaultValue。
hashMap.get("cc");
hashMap.getOrDefault("aa",-1)//key=aa不存在,所以返回默认value -1
获取键值对的数量
size()
:返回hash表中键值对的数量。
hashMap.size();
替换元素
replace(key,value)
:若存在key,则替换原来的value,若不存在key,则没有动作。
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// 创建一个 HashMap
HashMap<Integer, String> sites = new HashMap<>();
// 往 HashMap 添加一些元素
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("sites HashMap: " + sites);
// 替换key为2的映射
String value = sites.replace(2, "Wiki");
System.out.println("Replaced Value: " + value);
System.out.println("Updated HashMap: " + sites);
}
}
元素遍历
第一种遍历方法:
Iterator iterator = hashMap.keySet().iterator();
while (iterator.hasNext()){
String key = (String)iterator.next();
System.out.println(key+"="+hashMap.get(key));
}
第二种遍历方法:
Iterator iterator1 = hashMap.entrySet().iterator();
while (iterator1.hasNext()){
Map.Entry entry = (Map.Entry) iterator1.next();
String key = (String) entry.getKey();
Integer value = (Integer) entry.getValue();
System.out.println(key+"="+value);
}