java中linkedlist类的特点_Java常用类库(三) : HashSet和LinkedList特点简析

今天内容:

l  浅撩HashSet集合元素不可重复的原理

l  使用LinkedList模拟栈和队列

1.浅撩HashSet集合元素不可重复的原理

我们知道HashSet是添加不了相同的元素的,其原理是hashSet在添加元素时,底层实现会调用到元素的HashCode方法进行。

6dd92c6b1ffa564c8888ca6008d8dcf7.png

图1:调用hashcode方法

我们在写Javabean时一般会重写hashCode和equals方法;可能说自动生成更合适一些。

a406df81cf492b17c664dd1856677748.png

图2:Javabean生成的hashCode方法

由图可以看到,生成的hashCode方法返回了以Javabean属性为参数的Objects的hash方法。

c2e346bd810efa07c218f47972e32f58.png

图3:Objects的hash方法

而Objects的hash方法又返回了Arrays的hashCode方法。

b23be8969aab89c477241397784ab5e2.png

图4:Arrays的hashCode 方法

可以看到,这里返回的result与JavaBean的每一个属性都有关(JavaBean的每一个属性都又调用了本身的HashCode方法.因此我们在写Javabean时千万不要忘记生成HashCode方法!

2.LinkedList可以当做底层来模拟队列和栈

我们之所以可以使用LinkedList来模拟队列和栈是因为LinkedList采用的是链表的结构,通过其已有方法就很好的实现队列”先进先出”和栈的”先进后出的”特点。

cacf6fc2e57823581cb3348c29fe44e0.png

图5:队列模拟类

36eacd2831de09a45e080dd06e4fc217.png

图6:队列测试

de47eee4e0ad93413b3e00bc2f59580c.png

图7:栈模拟类

ef2e177f3da4351f795135115f36cdb9.png

图8:栈测试

关注微信公众号,随时随地学习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值