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]
相關用法
- Java TreeSet comparator()用法及代碼示例
- Java TreeSet contains()用法及代碼示例
- Java TreeSet containsAll()用法及代碼示例
- Java TreeSet ceiling()用法及代碼示例
- Java TreeSet clear()用法及代碼示例
- Java TreeSet clone()用法及代碼示例
- Java TreeSet Spliterator()用法及代碼示例
- Java TreeSet add()用法及代碼示例
- Java TreeSet addAll()用法及代碼示例
- Java TreeSet descendingIterator()用法及代碼示例
- Java TreeSet descendingSet()用法及代碼示例
- Java TreeSet equals()用法及代碼示例
- Java TreeSet first()用法及代碼示例
- Java TreeSet floor()用法及代碼示例
- Java TreeSet hashCode()用法及代碼示例
- Java TreeSet headSet()用法及代碼示例
- Java TreeSet higher()用法及代碼示例
- Java TreeSet isEmpty()用法及代碼示例
- Java TreeSet iterator()用法及代碼示例
- Java TreeSet last()用法及代碼示例
- Java TreeSet lower()用法及代碼示例
- Java TreeSet pollFirst()用法及代碼示例
- Java TreeSet pollLast()用法及代碼示例
- Java TreeSet remove()用法及代碼示例
- Java TreeSet removeAll()用法及代碼示例
注:本文由純淨天空篩選整理自Chinmoy Lenka大神的英文原創作品 TreeSet comparator() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。