当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java TreeSet和SortedSet的区别用法及代码示例


TreeSet 是可导航 sub-interface 的实现之一。它的底层数据结构是 red-black tree 。元素按升序存储,与 SortedSet 相比,TreeSet 中提供了更多方法。我们还可以使用 Comparator 更改排序参数。例如,Comparator 在设置创建时提供,具体取决于使用哪个构造函数。

  • 它还实现NavigableSet接口。
  • NavigableSet 扩展了SortedSet 和Set 接口。

示例

Java


// Java Program to Illustrate TreeSet
// Importing required classes
import java.util.*;
// Main class
class GFG {
    // Main driver method
    public static void main(String args[]) {
        // Creating an empty TreeSet of string type elements
        TreeSet<String> al = new TreeSet<String>();
        // Adding elements
        // using add() method
        al.add("Welcome");
        al.add("to");
        al.add("Geeks for Geeks");
        // Traversing elements via help of iterators
        Iterator<String> itr = al.iterator();
        // Holds true until there is element remaining in object
        while (itr.hasNext()) {
            // Moving onto next element with help of next() method
            System.out.println(itr.next());
        }
    }
}
输出
Geeks for Geeks
Welcome
to

Sorted Set

SortedSet 是sub-interface,可在扩展Set 接口的java.util.package 中使用。该接口包含从Set接口继承的方法。例如,headSet、tailSet、subSet、Comparator、first、last 等等。

示例

Java


// Java program to Illustrate SortedSet
// Importing utility classes
import java.util.*;
// Main class
class GFG {
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an instance of SortedSet
        // String type
        SortedSet<String> ts = new TreeSet<String>();
        // Adding elements into the TreeSet
        // using add()
        ts.add("Sravan");
        ts.add("Ojaswi");
        ts.add("Bobby");
        ts.add("Rohith");
        ts.add("Gnanesh");
        ts.add("Devi2");
        // Adding the duplicate element
        // again simply using add() method
        ts.add("Sravan");
        // Print and display TreeSet
        System.out.println(ts);
        // Removing items from TreeSet
        // using remove() method
        ts.remove("Ojaswi");
        // Display message
        System.out.println("Iterating over set:");
        // Iterating over TreeSet items
        Iterator<String> i = ts.iterator();
        // Condition holds true till there is single element
        // remaining in the object
        while (i.hasNext())
            // Printing elements
            System.out.println(i.next());
    }
}
输出
[Bobby, Devi2, Gnanesh, Ojaswi, Rohith, Sravan]
Iterating over set:
Bobby
Devi2
Gnanesh
Rohith
Sravan

现在,在对TreeSet和SortedSet有了充分的了解和内部工作原理之后,现在让我们看看TreeSet和SortedSet之间的区别,如下表所示:

基础

TreeSet

SortedSet

分类 NavigableSet sub-interface 类。 Sub-Interface
广告订单 TreeSet 按排序顺序维护一个对象。 SortedSet 按排序顺序维护一个对象。
初始化

用法:

TreeSet<数据类型> treeset = new TreeSet<>();

用法:

它无法实例化,因为它是sub-Interface。

方法 包含比 SortedSet 更多的方法。 包含的方法比 TreeSet 少。
示例 包含SortSet的所有方法。另外还有 ceiling()、floor()、higher()、lower() 等方法 包含add()、addAll()、iterator()、retainAll() 等方法

Conclusion: Basically in simple words let’s assume this way, TreeSet is a class of NavigableSet which contains all of the methods for better traversing and searching for values. SortedSet is a sub-set of NavigableSet in terms of methods compare to TreeSet(NavigableSet)



相关用法


注:本文由纯净天空筛选整理自sravankumar_171fa07058大神的英文原创作品 Difference Between TreeSet and SortedSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。