集合之set

Set接口

set不允许包含重复的值,并且set添加的元素无法记住添加时的顺序。

HashSet集合:实现了set接口。add()方法底层依赖与HashMap.

注:hashSet集合不是线程安全的,集合可以是null,
当向hashSet集合中添加元素时,hashSet(0会调用对象的hashCode()方法来得到该对象的 hashCode 值,然后根据 hashCode 值决定该对象在 HashSet 中的存储位置。如果两个元素的 equals() 方法返回 true,但它们的 hashCode() 返回值不相等,hashSet 将会把它们存储在不同的位置,但依然可以添加成功。

TreeSet 是 SortedSet 接口的实现类,TreeSet 可以确保集合元素处于排序状态。

排序方法:自然排序(默认)、定制排序。
自然排序:如果要添加一个对象至TreeSet。
1.该对象的类实现Comparable接口,实现comparaTo(Object o)方法,对象通过该方法的返回值来比较大小。
在这里插入图片描述
在这里插入图片描述
定制排序:在创建TreeSet集合对象时,实现Comparator接口,由它来对集合元素进行排序。
步骤:
1.创建一个比较器,实现Comparator接口
2.复写compare方法
在这里插入图片描述
3.创建treeSet时提供一个Comparator对象
在这里插入图片描述
这样在向1集合中添加数据时,比较器会自动比较,并还可以根据compare方法中returnf返回值进行排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值