Java语法-set集合,哈希表,哈希值,LinkedHashSet

1、set 集合用增强 for 循环的简便方法是是什么?

set.for

2、哈希值是什么?哈希值的作用是什么?

答:哈希值是系统给出的十进制地址;
Object类中就有hashCode()方法;
输出对象本身就等同于输出对象.toString()等同于对象.hashCode();
String类改写了哈希值,让两个相同的字符串相等,就相当于它们的哈希值相等。
哈希值可以用来构造HashSet 的数据结构;

3、HashSet 集合的数据结构是什么?

JDK1.8 之后是数组+红黑树;
哈希值不同的元素放在数组中不同的位置上;
哈希值相同的元素放在数组中某个位置的树上。

4、为什么HashSet 里面存的元素都是不同的?

哈希值和equals方法双重保证;
哈希值不同,那么存的元素一定不同;
如果哈希值相同,那么在看看哈希值相同的对象equals 对方是否返回 true;
使用前提:元素对象所用的类重写了hashCode()方法和equals()方法;
这两个方法alt+insert是有快捷重写的;

5、LinkedHashSet具有可预知的迭代顺序。什么是可预知的迭代顺序

可预知的迭代顺序对应着不可预知的迭代顺序;
哈希表即HashSet中add元素后,打印集合显示的元素并不一定按照add的顺序来;
LinkedHashSet中add元素后,打印的集合显示的元素一定按照add的元素来;

6、LinkedHashSet是set接口的哈希表和链接列表实现。什么是链接列表

链接列表就是链表;
哈希表 = 数组+链表/红黑树;
LinkedHashSet = 哈希表+链表;
这个链表是用来记录元素的存储顺序;

7、LinkedHashSet维护着一个运行于所有条目的双重链接列表。什么是双重链接列表?

双重链接列表 = 双向链接列表
双重链接链表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值