HashMap常用方法

一颗蔬菜 2019-09-25 AM 59℃ 0条

【代码示例】

import java.util.Collection;
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;

public class HashMapTest {
    public static void main(String[] args) {
        HashMap<String, String>  map = new HashMap<String, String>();
        // 若该key对应的键值对已存在则返回之前的value,若不存在则返回null
        System.out.println("map.size():" + map.size());
        map.put("san","张三");
        map.put("si", "李四");
        System.out.println("map.put(key, value):" + map.put("wu", "李五"));

        map.put("wang", "老王");
        map.put("wang", "小王"); // 覆盖原来的值

        System.out.println("------ 直接输出hashmap ------");
        System.out.println(map);

        /**
         * 遍历HashMap
         */
        // 1.获取map中的所有键
        System.out.println("------ foreach获取map中的所有键:------");
        Set<String> keys = map.keySet();
        for (String key : keys) {
            System.out.println(key+"  "+map.get(key));
        }

        // 2.获取map中的所有值
        System.out.println("------ foreach获取map中的所有值:------");
        Collection<String> values = map.values();
        for (String value : values){
            System.out.println(value);
        }

        // 3.获取map中的Entry静态内部类对象
        /**
         * 当我们调用put(key, value)方法时首先会把key和value封装到Entry
         * 这个静态内部类对象,在把Entry对象添加到数组中,所以我们想获取map中的键值对
         * 时,我们只要获取数组中的Entry对象,然后调用Entry中的getkey()和getValue()
         * 方法就能获取到键值对了
         */
        System.out.println("----- foreach获取map中静态内部类对象的所有键和值");
        Set<Entry<String, String>> entrys = map.entrySet();
        for (Entry<String, String> entry : entrys) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }

        /**
         * HashMap其他常用方法
         */
        System.out.println("----- HashMap中的其他常用方法 -----");
        // map.size()返回值为键值对的数量
        System.out.println("map.size():" + map.size());
        // 若map为空,则map.isEmpty()的返回值为true,相反则返回false
        System.out.println("map.isEmpty():" + map.isEmpty());
        // 若该键值对存在,则返回value,若不存在,则返回null
        map.remove("san");
        // 若该键值对存在,则返回value,若不存在,则返回null
        System.out.println("map.get(key):" + map.get("si"));
        // 若该键值对存在,则返回true,若不存在,则返回false
        System.out.println("map.containsKey(key):" + map.containsKey("si"));
        System.out.println("map.containsKey(key):" + map.containsKey("ba"));
        // 若该value存在,则返回true,若不存在,则返回false
        System.out.println("map.containsValue(value):" + map.containsValue("张三"));
        System.out.println("map.containsValue(value):" + map.containsValue("李四"));
    }
}

【运行结果】

map.size():0
map.put(key, value):null
------ 直接输出hashmap ------
{san=张三, wang=小王, si=李四, wu=李五}
------ foreach获取map中的所有键:------
san  张三
wang  小王
si  李四
wu  李五
------ foreach获取map中的所有值:------
张三
小王
李四
李五
----- foreach获取map中静态内部类对象的所有键和值
san 张三
wang 小王
si 李四
wu 李五
----- HashMap中的其他常用方法 -----
map.size():4
map.isEmpty():false
map.get(key):李四
map.containsKey(key):true
map.containsKey(key):false
map.containsValue(value):false
map.containsValue(value):true

【学习链接】

学习链接

标签: Java

非特殊说明,本博所有文章均为博主原创。