Java中的HashMap

Java中的HashMap

简介

HashMap是什么?
HashMap是一个散列表,它存储的内容是键值对(key-value)映射
HashMap实现了Map接口,最多允许一条记录的键为null,不支持线程同步
HashMap是无序的,即不会记录插入的顺序

HashMap的key与value类型可以相同也可以不同,可以是String,Integer等

联机模式的用户列表就是用HashMap存储的
相对于数组存储方式 HashMap的查找删除操作更方便,当用户断开连接时可以很方便地删除

常用

导入HashMap类

HashMap类位于java.util包中,使用前需要引入它

import java.util.HashMap;

构造

构造HashMap的时候需要说明键值对的类型<keytype, valuetype>

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

添加元素

添加键值对可以使用put()方法
方法原型:

String java.util.HashMap.put(String key, String value);

方法实例:

Sites.put(1,"HFUT");
Sites.put(2,"USTC");

执行输出System.out.println(Sites);得到的结果

{1=HFUT, 2=USTC}

访问元素

调用get(key)方法获取key对应的value

String java.util.HashMap.get(Object key);

删除元素

调用remove(key)方法删除key对应键值对(key-value)

String java.util.HashMap.remove(Object key)

计算大小

调用size()方法计算HashMap中的元素数量

int java.util.HashMap.size()

迭代

使用for-each来迭代HashMap中的元素
如果你只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value,如果你只想获取 value,可以使用 values() 方法。

// 引入 HashMap 类      
import java.util.HashMap;

public class RunoobTest {
    public static void main(String[] args) {
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        // 输出 key 和 value
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
          // 输出每一个value
          System.out.print(value + ", ");
        }
    }
}

查重

containsKey();//检查是否存在指定的key对应的映射关系
containsValue();//检查是否存在指定的value对应的映射关系
上一篇:HashMap遍历的四种常用方式


下一篇:说一说HashMap为什么在多线程操作时会导致死循环