當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。