java-双列集合

什么是双列集合?

集合中每次存的数据是成对存入的

以及它的特点是什么?

特别注意:键不可重复,值可以

Map是双列集合的顶层接口

Map

它有哪些方法呢?

Map的常用API

添加

添加操作的代码如下

我们要明白一些细节:

当我们要添加的键是之前集合没有这个键的时候,我们调用该方法,就会在集合中添加这个,同时返回值为null,如上图value1接收的

但是如果我们要添加的键,之前集合元素就已经存在了,那么我们集合就会将新添加的值覆盖掉原先的值,然后返回一个原先的值,

如上图第一次添加韦小宝—沐剑屏,第二次添加韦小宝—双儿,此时韦小宝这个键重复了,然后双儿就会覆盖掉沐剑屏,并且返回一个沐剑屏

删除

这里没什么好说的,就是要知道,这个方法调用后,返回值是,删除的这个键值对的值,并不返回键。

清空

这个就不用多说了,直接调用就行

判断是否包含

这个也不需要多说,就是有两种判断,一种是判断键,一种是判断值,返回值为boolean类型

判断是否为空

获取长度

这两个都很简单,无需多言

Map的遍历

第一种遍历方式(键找值)

见图即懂:

第二种遍历方式(键值对)

这里我们要说一下这段代码

Set<Map.Entry<String,String> entries=map.entrySet();

我们来分析一下:

首先我们很容易看出,这是一个Set系列集合,集合名字是entries

然后我们来看一下等号右边:map是我们定义的一个Map集合的对象,entrySet()是map调用的一个方法,这个方法作用是将map集合的键值对全部存入entries集合中,但是entries集合这个集合的泛型用什么呢?

我们可以看到图中Map.Entry<String,String>这个就是这个集合的泛型,Map是接口,Entry是它的实现类<>这里传入的形参分别是键的类型和值的类型

当然我们也可以在类上面导包import java.util.Map.Entry;

然后写成这样Set<Entry<String,String> entries=map.entrySet();

第三种遍历方法(lambda表达式)

看图好好领悟吧,我也讲不清

HashMap

它作为一个Map的子类,直接调用父类Map的方法就行了

我们主要介绍的是它的特点

从名字我们就可以看出,它的底层用的是哈希表

但是我们要知道,这里哈希值的计算,是只与键有关,与值无关,所以键不能重复,值可以重复

因为都是哈希表底层,所以存储自定义对象时,该重写的还是得重写,和之前的HashSet是一样的

我们在这就再讲一个HashMap的应用

利用Map集合进行统计

如下题

解题方法我就不多讲了,直接上图

LinkedHashMap

这是HashMap的子类,所以也不用学习新的方法

这个和LinkedHashSet也差不多,就是在HashMap的基础上多了个存取数据是有序的就是了

TreeMap

它的基本原理和TreeSet差不多,我们就不多加介绍

介绍一个TreeMap的应用(统计)

题目如下:

解题代码如下

总结

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值