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() 创建此映射表的一个拷贝
java.util.HashMap的更多相关文章
- java:警告:[unchecked] 对作为普通类型 java.util.HashMap 的成员的put(K,V) 的调用未经检查
java:警告:[unchecked] 对作为普通类型 java.util.HashMap 的成员的put(K,V) 的调用未经检查 一.问题:学习HashMap时候,我做了这样一个程序: impor ...
- Mabitis 多表查询(一)resultType=“java.util.hashMap”
1.进行单表查询的时候,xml标签的写法如下 进行多表查询,且无确定返回类型时 xml标签写法如下: <select id="Volume" parameterType=&q ...
- 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题
在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...
- LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下。 ? import java.util.HashMap; impo
LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下. import java.util.HashMap; import ...
- java.util.HashMap和java.util.HashTable (JDK1.8)
一.java.util.HashMap 1.1 java.util.HashMap 综述 java.util.HashMap继承结构如下图 HashMap是非线程安全的,key和value都支持nul ...
- 关于spring mybateis 定义resultType="java.util.HashMap"
关于spring mybateis 定义resultType="java.util.HashMap" List<HashMap<String, Object>& ...
- JDK1.8源码(七)——java.util.HashMap 类
本篇博客我们来介绍在 JDK1.8 中 HashMap 的源码实现,这也是最常用的一个集合.但是在介绍 HashMap 之前,我们先介绍什么是 Hash表. 1.哈希表 Hash表也称为散列表,也有直 ...
- org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.HashMap
这样的配置有问题吗? <select id="getFreightCollectManagementList" resultMap="java.util.HashM ...
- spring boot 之 错误:SpelEvaluationException: EL1008E: Property or field 'timestamp' cannot be found on object of type 'java.util.HashMap'
这个错误我也见过很多次了,今天终于理解了其出现的原因. 错误是这样的: 2017-11-23 18:05:39.504 ERROR 4092 --- [nio-8080-exec-3] o.a.c.c ...
- java.util.HashMap的简单介绍
1. java.util.HashMap的底层实现是数组+链表. 2. 简介put(key, value)方法的执行过程: 1)通过key值,使用散列算法计算出来一个hash值,用来确定该元素需要存储 ...
随机推荐
- 求CRC校验和的低位和高位的两种方式
方式1 unsigned ; // 校验和 ]; memcpy(tstCRCChecksum,&shrCRCCheckSum,); // shrCRCCheckSum:216D LOGI(]) ...
- barabasilab-networkScience学习笔记3-随机网络模型
第一次接触复杂性科学是在一本叫think complexity的书上,Allen博士很好的讲述了数据结构与复杂性科学,barabasi是一个知名的复杂性网络科学家,barabasilab则是他所主导的 ...
- 使用while代替for循环的几个习题
1:兔子问题 2:100以内质数的和 3:单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都是各买几样? 总结:wh ...
- Android 中常用的布局
一.线性布局----LinearLayout horizontal 水平 <?xml version="1.0" encoding="utf-8"?& ...
- 《DSP using MATLAB》示例Example4.6
用到的z变换的性质: 继续解题: 上代码: b = [0,0,0, 0.25, -0.5, 0.0625]; a = [1, -1, 0.75, -0.25, 0.0625]; % polynomia ...
- 提取Windows用户密钥文件cachedump
提取Windows用户密钥文件cachedump Windows系统将用户信息和密钥存储在系统存档文件(System hive)和安全存档(Security hive)中.只要提取这些内容,就可以 ...
- Spring Collections XML 配置
List <property name="lists"> <list> <value>1</value> <ref bean= ...
- 每天一个linux命令--awk
统计计算日志 pmail@app2linux04 performance]$ grep 'user:logBehaviorAction' performance.log|awk -F '|' '{pr ...
- Silverlight
http://kb.cnblogs.com/zt/silverlight/ http://www.cnblogs.com/gnielee/archive/2010/01/15/silverlight- ...
- 2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest F. Friends
F. Friends time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...