java定义水果架set_java集合框架之Set

Set集合

元素不可以重复,是无序。

方法与list相同

HashSet:不保证set的迭代顺序,不同步,内部数据结构是哈希表

如果存自定义对象则需要覆盖equals和hashCode方法

先比较hashCode,如果hashCode相同再equals方法比较,如果仍然相同则判断元素相同不再入容器,即add()方法不会把元素添加进来

LinkedHashSet:既有序又唯一

TreeSet:可以对set集合中元素进行排序,是不同步的

判断元素是否唯一的方式就是通过比较方法comparable是否返回0,返回0就是相等

TreeSet对元素排序的方式一:

让元素(存入的对象)实现comparable接口并覆盖comparable方法

通过返回值(0,正数,负数)来判断大小并进行排序

如果返回负数,说明要添加的元素大于被比较的元素,则把要添加的元素放在二叉树的右边

相反…

方式二:

如果对象不具备自然排序,则可以让集合自身具备比较功能。

通过TreeSet构造函数注入一个实现Comparator接口并覆盖了compare方法的类对象来进行排序;

(注:当这两种方式同时使用时,会采用第二种方式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值