android|HashMap归纳(一)

前段时间,自己面试以及面试别人,都多次涉及到HashMap的原理,其实我自己也有点迷糊,不像刚学习的时候清晰,借写这篇博客的机会,回顾巩固一下
第一篇先来看下HashMap的定义和基本用法
一、HashMap的定义
根据百度百科,HashMap是基于基于哈希表的Map。我们先搞清楚Map的定义,列下JAVA中的注释:

An object that maps keys to values.A map cannot contain duplicate keys; each key can map to at most one value.

可见,Map就是一个两两映射的映射表,类似于如下的结构
1->a
2->b
3->c
而哈希表,也叫散列表,是HashMap底层实现的数据结构。这一部分会在后续原理详解。
所以,HashMap其实就是一个用散列表来实现的存储映射关系的MAP
二、用法
说到用法,我们可以先看下接口Map中的方法
android|HashMap归纳(一)
文章图片

put-向map中添加键值对
get-根据key从map中或者value
replace-替换key对应的value
remove-删除key对应的键值对
其中常用的也就是增删改查
另外HashMap的遍历也是常见的用法
包括以下两种迭代方法:
1、foreach遍历map.entryset
当然也可以先获取map的key的集合、value的集合,再进行foreach迭代
2、迭代器遍历
获取entryset的迭代器,继而遍历
同样,可以对key集合、value集合遍历
HashMap map = new HashMap(); map.put("1", "11"); map.put("2", "22"); map.put("3", "33"); //第一种 for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getValue()); } for (String key : map.keySet()) { System.out.println(key); }//第二种 Iterator it = map.entrySet().iterator(); while (it.hasNext()) { System.out.println(it.next().getValue()); } Iterator itValue = https://www.it610.com/article/map.values().iterator(); while (it.hasNext()) { System.out.println(it.next().getValue()); }

三、使用场景
记录一个印象较深的使用场景
查询南京到北京的所有机票,以列表展示,此时希望以出发机场进行筛选;筛选条件由接口返回的所有机票的出发机场集合组成;使用HashMap记录机场,利用HasMap添加元素时,重复元素不会添加的特性,可以方便快捷地完成机场信息的提取。
【android|HashMap归纳(一)】之前写了两遍记录问题解决过程的博客,这是第一次写这样归纳知识点的文章,水平和文笔都有所欠缺,挤牙膏一般,权当记录学习的过程;后续我会不断的补充和完善,希望能够尽快的提高自己。

    推荐阅读