JAVA基础进阶学习(7)--HashSet 、LinkedeHashSet 和 TreeSet
HashSet底层原理:

注意:
自定义的类要想使用hashset集合,必须重写hashCode() 和equals()方法!
hashCode() 方法每次计算位置都要调用一次;
equals()方法只有在冲突的时候才调用;
不同类型底层的hashCode()方法

如何减少hash冲突
1、将主数组长度变大;
2、优化计算位置的函数;
set的对比
HashSet 是唯一的(元素不重复)且无序的;
LinkedeHashSet 有序,是按照放入的顺序输出的;
TreeSet 无序(没有按照输入顺序输出),有序(按照从大到小的顺序输出),唯一;
TreeSet 底层原理:二叉树(红黑树);自定义的类放入集合中,要实现内部比较器或者外部比较器

内部比较器:

中文比较规则:

外部比较器:
1.


2.匿名内部类

浙公网安备 33010602011771号