JAVA进阶篇DAY11

目录

HashSet集合类

HashCode方法和equals方法的配合流程:

原理解析:

LinkedHashSet集合

​编辑

集合工具类之可变参数:

Collections集合工具类:

双列集合:

​编辑 ​编辑

Map集合的三种遍历方式:


HashSet集合类

之所以在这里介绍不同的集合,比如HashSet、TreeSet等,是因为它们在存储数据元素的时候底层实现是不一样的,比如使用红黑树的思想,哈希存储的思想等等。。


HashCode方法和equals方法的配合流程:

equals方法会导致使用HashSet添加元素的时候不会出现重复的情况(数据的重复取决于你自己写的equals方法)

下面是重写方法的示例:

下面是创建的Hash表示例:

原理解析:

旧版本

JDK8以后:

先通过对象的hashcode方法拿到原始的哈希值,再对原始的哈希值做hash扰动,最后跟原始hash做异或操作。


LinkedHashSet集合


总结:

集合工具类之可变参数:

下面是一个示例:


Collections集合工具类:

下面是一个示例:

双列集合:

 

下面是一个HashMap的示例:

对于HashMap来说,如果存储的是自定义的对象,需要重写hashCode和equals方法。

同样,对于TreeSet来说,如果存储的也是自定义的对象,需要重写compare方法。


Map集合的三种遍历方式:

第一种:

下面是一个示例:


第二种:

下面是一个示例:


第三种:

下面是一个示例:

lambda的写法:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值