zoukankan      html  css  js  c++  java
  • java.util.HashMap

    做LeeCode上的题目,发现关于数组的题目用HashMap后简化运算,包括在之前的工作中,也多次用到HashMap而我对它的了解却不多,现在来总结一下。

    在算法中的用处,暂时的理解是,当数组中两个数据有联系时,可以将一个存储在HashMap中寻找下一个,

     public class HashMap extends AbstractMap implements Map

    AbstractMap 实现了 Map 此处又加上 implements Map 目前认为是为了结构清晰

    Map接口的四个实现:HashMap,Hashtable,TreeMap,WeakHashMap

    HashMap 用来存储被称为表项的 key/value 的收集,提供所有可选操作,允许  key/value 为 null 。关键字必须唯一,值可以不唯一。如果添加一个具有相同关键字的表项,这个映射表将用新的表项替换旧的表项。

    关键字在映射表中不能被修改。// 这句话不能理解-->映射表是啥,网上没查到,求路过的大神解释

    HashMap 内部使用哈希表存储表项,这些表项的 存取和添加 和数组的一样快。当需要确定一个表项集合并判断某个表项是否已经存在于集合中时,HashMap是非常有用的,而且不用考虑表项的顺序(使得其在写算法时常被用到)。

    使用:

    可以创建一个空的 HashMap 或由映射表初始化一个 HashMap,

    HashMap map;

    map = new HashMap;

    map = new HashMap(map);

    容量和装载因子:

    通常容量为映射表中表项数量的两倍比较合适。

    构造函数:

    HashMap() 构造一个新的HashMap实例

    值检索方法:

    get 检索与一个关键字关联的值

    value = get(key);

    查询方法:

    containsKey 确定此映射表是否包含特定的关键字

    containsValue() 确定此映射表是否包含特定的值

    isEmpty() 确定此映射表是否有表项

    size() 返回映射表中表项的个数

    修改方法:

    clear() 清空映射表

    put()  添加一个键值对

    putAll() 添加一个来自另一个映射表中的键值对

    remove() 从映射表中删除一个表项

    收集视图方法:

    entrySet() 返回包含映射表中所有键值对的集合

    keySet() 返回包含映射表中所有关键字的集合

    values() 返回包含映射表中所有值的集合

    对象方法

    clone() 创建此映射表的一个拷贝

  • 相关阅读:
    LinkedBlockingQueue 单向链表实现的阻塞队列
    ArrayBlockingQueue 实现定时推送数据
    前台接收后端的JsonArray,循环输入页面表格
    一个常用的文件操作类
    DelayQueue 延时获取元素的无界阻塞队列
    单例设计模式
    使用SQL Server Data Tools (SSDT)比较和同步两个数据库的架构或者数据
    Entity Framework技能知识点测试2
    JS设置localStorage有效期
    Entity Framework技能知识点
  • 原文地址:https://www.cnblogs.com/tf-Y/p/4868429.html
Copyright © 2011-2022 走看看