您的位置:首页 > 其它

集合框架set

2019-05-22 18:43 375 查看

集合框架set

Hashset

元素是无序(存入和取出的顺序不一定一致),元素不可以重复;
HashSet哈希表存储 底层数据结构是哈希表
HashSet存入重复元素

同姓名同年龄视为同一个人 ,重复元素 , 从代码上看,equals方法没有被调用

是因为HashSet集合存储是先调用hashCode方法,这里我们将hashCode方法重写一下看看

HashSet是如何保证元素唯一性的呢?

是通过元素的两个方法:hashCode与equals方法来完成;

如果hashCode值相同,才会判断equals是否为true;

如果hashCode值不同,那么不会调用equals。

注意:对于判断元素是否存在,以及删除等操作,依赖的方法同样是hashCode、equals方法。

List与Set判断重复对象的区别?

List只依赖于equals方法

Set依赖于hashCode、equals方法

TreeSet

TreeSet自然排序
TreeSet可以对set集合中元素进行排序

String实现了Comparable接口,所以可以直接进行排序

引用数据类型想要排序,必须实现Comparable接口




TreeSet比较器排序
TreeSet排序的第二种方式

当元素自身不具备比较性时,或者具备的比较性不是所需要的;

注意:这时需要让集合自身具备比较性

在集合初始化时,就有了比较方式;

定义一个类,实现comparator接口,实现compare方法

当两种排序都存在时,比较器排序优先级更高

因此比较器用的多一些,在实际开发中,很多时候,引用数据类型是否具有比较性,或者比较规则,可能不由开发人员自己决定,

那么开发人员想要对应的引用数据类型按照自己的排序方式进行排列,那么就需要实现comparator接口,实现compare方法


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: