Java 中 TreeSet 和 HashSet 的性能比较
本教程解释了 之间的所有差异和共同功能
TreeSet 和
HashSet。事实上,这是 java 集合中一个非常流行的问题,例如
ArrayList 与 Vector 和
HashTable 与
HashMap。可能最重要的区别是性能。
TreeSet vs HashSet
1) HashSet 为基本操作提供一致的性能时间,例如: 添加、删除, contains 和 尺寸跨度>。HashSet 比 TreeSet如果你不需要对元素进行排序,这将是一个非常好的选择,因为 HashSet 没有排序系统。树集 保证基本操作的 log(n) 时间 (添加, remove et 包含).
3) 遍历性能取决于 HashSet。TreeSet 没有影响课程性能的参数。
4) TreeSet 提供了 HashSet : first(), last(), headSet() 和 tailSet().
5) HashSet 使用方法 equals() 比较两个对象并检测重复对象。TreeSet 使用compareTo()。equals() 返回 true,并且 compareTo() 应该返回零.
TreeSet 和HashSet in Java
哈希集 和
树集 有很多共同点,我们一起来看看:
1) 两者都实现了接口
java.util.Set、CE 这意味着它们不允许插入重复的元素。
2) 这两个实现不同步。您可以使用 Collections.synchronizedSet().
3) 如果你想要一个排序的集合,将元素添加到 HashSet然后将它们转换为 树集 而不是创建一个 TreeSet 并添加 elements.
最后,我们可以说使用选择完全取决于您的需求。
HashSet 示例:
import java.util.HashSet;
public class example {
public static void main(String[] args) {
HashSet<字符串>hset = 新的 HashSet<字符串>();
hset.add(1”);
hset.add(3”);
hset.add(2”);
hset.add(5”);
for(String s: hset)
System.out.println(s);
}
}
结果:
3
2
1
5
TreeSet 示例:
import java.util.TreeSet;
public class example {
public static void main(String[] args) {
TreeSet<字符串>tset = 新 TreeSet<字符串>();
tset.add(1”);
tset.add(3”);
tset.add(2”);
tset.add(5”);
for(String s: tset)
System.out.println(s);
}
}
结果:
1
2
3
5
References:
Java中HashSet和TreeSet的区别Hashset vs Treeset