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
*
*/
/**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
*
*/
本文对比分析了HashSet和TreeSet两种集合的特点与性能差异。HashSet允许空值且元素无序,而TreeSet不允许空值但能保持元素有序。在添加大量数据时,HashSet表现更优。

被折叠的 条评论
为什么被折叠?



