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() 应该返回零.
5) HashSet 使用方法 equals() 比较两个对象并检测重复对象。TreeSet 使用compareTo()。equals() 返回 true,并且 compareTo() 应该返回零.
TreeSet 和HashSet in Java
2) 这两个实现不同步。您可以使用 Collections.synchronizedSet().
3) 如果你想要一个排序的集合,将元素添加到 HashSet然后将它们转换为 树集 而不是创建一个 TreeSet 并添加 elements.
最后,我们可以说使用选择完全取决于您的需求。
3) 如果你想要一个排序的集合,将元素添加到 HashSet然后将它们转换为 树集 而不是创建一个 TreeSet 并添加 elements.
最后,我们可以说使用选择完全取决于您的需求。
HashSet 示例:
import java.util.HashSet;TreeSet 示例:
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
import java.util.TreeSet;References:
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
Java中HashSet和TreeSet的区别
Hashset vs Treeset