Set接口下的集合

本文对比分析了HashSet和TreeSet两种集合的特点与性能差异。HashSet允许空值且元素无序,而TreeSet不允许空值但能保持元素有序。在添加大量数据时,HashSet表现更优。
Set统一的特征是不可重复。
 /**HashSet
 * HashSet extends AbstractSet implements set
 * AbstractSet extends AbstractCollection implements Set
 * AbstractCollection implements Collection
 * Set extends Collection
 * Collection extends Iterable
 *
 /**TreeSet
 * TreeSet extends AbstractSet implements NavigableSet (Navigable:可航行的,可领航的,可操纵的)
 * NavigableSet extends SortedSet (排序了的)
 * SortedSeet extends Set
 *
 /**性能
 * set其实就是map中的key,是不可重复的。
 * HashSet和TreeSet在使用迭代器遍历时,速度差不多,几乎一致。但是在添加数据时,HashSet明显要快些,
 * 在100万的数据下,快了大概200到300毫秒,在计算机的世界,这是一个数目。
 *
 /**区别
 *HashSet无序,TreeSet有序,HashSet的无序,其实是按照另一种算法的排序,否则每次输出的结果都会不一样。
 *TreeSet不可以添加Null值,HashSet可以添加Null值,TreeSet之所以不能添加null值,是因为添加数据之后,会进行排序操作
 * 而排序操作需要获取每个元素进行一一比较,在比较时,就会出现NullpointException
 *从结构上来说,TreeSet为了做到有序,通过NavigebleSet间接实现了SortedSet接口,而HashSet是直接实现Set的。
 * @author silone
 *
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值