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


Java TreeSet comparator()用法及代碼示例

TreeSet 是 Java 中 SortedSet interface 最重要的實現之一,它使用 Tree 進行存儲。無論是否提供顯式的comparator,元素的排序均由集合使用其自然順序來維護。如果要正確實現 Set interface ,這必須與 equals 一致。

java.util.TreeSet 中存在的 comparator() 方法共享一個設置和返回比較器的重要函數,該比較器可用於對 TreeSet 中的元素進行排序。如果集合遵循元素的自然排序模式,則該方法返回 Null 值。

用法:

comp_set = (TreeSet)tree_set.comparator()

參數:該方法不帶任何參數。

返回值:比較器集用於按特定順序對集合中的元素進行排序。如果集合遵循默認或自然排序模式,它將返回 Null 值。

在這裏,我們將提出兩個示例,下麵的一個示例之前我們將使用元素的自然排序,稍後使用特定的比較器來更好地理解它。

示例 1:使用元素的自然順序

Java


// Java Program to illustrate the use of comparator() method 
// While using the natural ordering of the elements 
  
// Importing utility classes 
import java.util.*; 
  
// Main class 
// TreeSet Demo class 
public class GFG { 
  
    // Main driver method 
    public static void main(String[] args) 
    { 
  
        // Creating an empty TreeSet of integer type 
        TreeSet<Integer> tree_set = new TreeSet<Integer>(); 
  
        // Adding elements to the set 
        // using add() method 
        tree_set.add(20); 
        tree_set.add(24); 
        tree_set.add(30); 
        tree_set.add(35); 
        tree_set.add(45); 
        tree_set.add(50); 
  
        // Printing elements inside TreeSet object 
        System.out.println("Tree Set values are: "
                           + tree_set); 
  
        // Creating a comparator 
        Comparator comp = tree_set.comparator(); 
  
        // Print and display the comparator values 
        System.out.println("Since the Comparator value is: "
                           + comp); 
        
        // Display message only  
        System.out.println("it follows natural ordering"); 
    } 
}
輸出:
Tree Set values are: [20, 24, 30, 35, 45, 50]
Since the Comparator value is: null
it follows natural ordering

示例 2:使用特定的比較器

Java


// Java code to illustrate the use of comparator() 
// While using a specific comparator 
  
// Importing Comparator and TreeSet classes 
// from java.util package 
import java.util.Comparator; 
import java.util.TreeSet; 
  
// Class 1 
// Helper class 
class Helper implements Comparator<String> { 
  
    // Method 
    // To compare two strings 
    public int compare(String str1, String str2) 
    { 
  
        String first_Str; 
        String second_Str; 
  
        first_Str = str1; 
        second_Str = str2; 
  
        // using compareTo() to ensure 
        return second_Str.compareTo(first_Str); 
    } 
} 
  
// Main class 
// TreeSetDemo class 
public class GFG { 
  
    // Main driver method 
    public static void main(String[] args) 
    { 
  
        // Creating an empty TreeSet of string type 
        TreeSet<String> tree_set = new TreeSet<String>(); 
  
        // Adding elements to our TreeSet object 
        // using add() method 
        tree_set.add("G"); 
        tree_set.add("E"); 
        tree_set.add("E"); 
        tree_set.add("K"); 
        tree_set.add("S"); 
        tree_set.add("4"); 
  
        // Printing elements in set before using comparator 
        System.out.println("Set before using the comparator: " + tree_set); 
  
        // Again creating an empty TreeSet of string type 
        // with reference to Helper class 
        TreeSet<String> tree_set1 = new TreeSet<String>(new Helper()); 
  
        // Adding elements to our TreeSet object 
        // using add() method 
        tree_set1.add("G"); 
        tree_set1.add("E"); 
        tree_set1.add("E"); 
        tree_set1.add("K"); 
        tree_set1.add("S"); 
        tree_set1.add("4"); 
  
        // Printing elements in set before using comparator 
        System.out.println("The elements sorted in descending order:" + tree_set1); 
    } 
}
輸出
Set before using the comparator: [4, E, G, K, S]
The elements sorted in descending order:[S, K, G, E, 4]


相關用法


注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 TreeSet comparator() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。