hashset和treeset的比较

先说下hashset:

由于hashset里面元素的位置是通过元素的哈希值来决定的,所以hashset不具备排序的功能

且hashset可以放入null,但是只能放入一个null

hashset不是同步的

hashset是不能重复放入元素的,它的比较标准是调用该对象的equals方法,然后在调用其hashcode方法,所以要比较对象,应该重写对象对应类的equals方法以及hashcode方法

再说treeset:

treeset可以保证放入的元素是有序的,treeset判断是否重复的标准是调用equals方法以及compareTo方法

treeset的排序分为自然排序和定制排序,自然排序调用对象的compareTo方法 定制排序使用compare(T o1,T o2)


总结一下他们的特点:

1、TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值

2、HashSet 是哈希表实现的,HashSet中的数据是无序的,可以放入null,但只能放入一个null 

3、HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的 String对象,hashcode是一样,所以放入的内容不能重复。但是同一个类的对象可以放入不同的实例 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值