你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

Java基础语法—HashMap(哈希表)

2021-12-2 9:26:00

创建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);
        }