Java 集合 HashSet和TreeSet的区别

在本文中,我们将讨论HashSetTreeSet之间的差异。

HashSetTreeSet

1) HashSetTreeSetaddremovecontainssize等操作提供更好的性能(更快)。HashSet提供恒定的时间成本,而对于这样的操作TreeSet提供log(n)时间成本。

2)HashSet不维护任何元素顺序,而TreeSet元素默认按升序排序。

相似之处

1)HashSetTreeSet都不包含重复元素,这意味着它们都是重复的。

2)如果你想要一个有序的Set,那么最好将元素添加到HashSet然后将其转换为TreeSet ,而不是创建一个TreeSet并向其添加元素。

3)这两个类都是非同步的,这意味着它们不是线程安全的,并且在需要线程安全操作时应该显式同步。

HashSet示例

import java.util.HashSet;
class HashSetDemo{ 
  public static void main(String[] args) {
     // Create a HashSet
     HashSet<String> hset = new HashSet<String>();

     //add elements to HashSet
     hset.add("Abhijeet");
     hset.add("Ram");
     hset.add("Kevin");
     hset.add("Singh");
     hset.add("Rick");
     // Duplicate removed
     hset.add("Ram"); 

     // Displaying HashSet elements
     System.out.println("HashSet contains: ");
     for(String temp : hset){
        System.out.println(temp);
     }
  }
}

输出:

HashSet contains: 
Rick
Singh
Ram
Kevin
Abhijeet

TreeSet示例

import java.util.TreeSet;
class TreeSetDemo{ 
  public static void main(String[] args) {
     // Create a TreeSet
     TreeSet<String> tset = new TreeSet<String>();

     //add elements to TreeSet
     tset.add("Abhijeet");
     tset.add("Ram");
     tset.add("Kevin");
     tset.add("Singh");
     tset.add("Rick");
     // Duplicate removed
     tset.add("Ram"); 

     // Displaying TreeSet elements
     System.out.println("TreeSet contains: ");
     for(String temp : tset){
        System.out.println(temp);
     }
  }
}

输出:元素按升序排序。

TreeSet contains: 
Abhijeet
Kevin
Ram
Rick
Singh

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程