hashmap的c语言实现原理,HashMap归纳(一)

本文回顾了HashMap的定义和基本用法,HashMap是基于哈希表实现的Map,提供了如put、get、replace和remove等操作。常用遍历方式包括foreach和迭代器。文章还分享了一个使用HashMap筛选机票出发机场的场景,利用其不允许重复键的特性。
摘要由CSDN通过智能技术生成

前段时间,自己面试以及面试别人,都多次涉及到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中的方法

bVbD1La

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 = map.values().iterator();

while (it.hasNext()) {

System.out.println(it.next().getValue());

}

三、使用场景

记录一个印象较深的使用场景

查询南京到北京的所有机票,以列表展示,此时希望以出发机场进行筛选;筛选条件由接口返回的所有机票的出发机场集合组成;使用HashMap记录机场,利用HasMap添加元素时,重复元素不会添加的特性,可以方便快捷地完成机场信息的提取。

之前写了两遍记录问题解决过程的博客,这是第一次写这样归纳知识点的文章,水平和文笔都有所欠缺,挤牙膏一般,权当记录学习的过程;后续我会不断的补充和完善,希望能够尽快的提高自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值