如果給定的 Spliterator 的源是由 Comparator 排序的,則 Java Interface Spliterator 的 getComparator() 方法用於獲取 Comparator。如果源按自然順序排序,則返回 null。否則,如果源不是 SORTED,則拋出 IllegalStateException。
用法
以下是 getComparator() 方法的聲明-
default Comparator<? super T> getComparator()
參數
此方法不接受任何參數。
返回
如果元素按自然順序排序,則 getComparator() 方法將返回一個比較器或一個空值。
異常
IllegalStateException - 如果拆分器未報告 SORTED 的特征,則此方法將引發異常。
兼容版本
Java 1.8 及以上
例子1
import java.util.*;
public class InterfaceSpliteratorGetComparatorExample1 {
public static void main (String[] args) {
//Create an array list
ArrayList<Integer> al1 = new ArrayList<>();
//Add values in the list.
al1.add(1);
al1.add(-2);
al1.add(3);
al1.add(-4);
//Getting Spliterator object
Spliterator<Integer> splitr = al1.spliterator();
//Print getComparator
System.out.println("" + splitr.getComparator());
}
}
輸出:
Exception in thread "main" java.lang.IllegalStateException at java.base/java.util.Spliterator.getComparator(Spliterator.java:465) at myPackage.InterfaceSpliteratorGetComparatorExample1.main(InterfaceSpliteratorGetComparatorExample1.java:16)
例子2
import java.util.*;
public class InterfaceSpliteratorGetComparatorExample2 {
public static void main (String[] args) {
SortedSet<Test> set = new TreeSet<>((o1, o2) -> o1.str.compareTo(o2.str));
set.add(new Test("two"));
set.add(new Test("one"));
Spliterator<Test> s = set.spliterator();
System.out.println(s.getComparator());
System.out.println(set);
}
private static class Test {
private final String str;
private Test (String str) {
this.str = str;
}
@Override
public String toString () {
return "Test{str='" + str + "'}";
}
}
}
輸出:
myPackage.InterfaceSpliteratorGetComparatorExample2$$Lambda$1/[email protected] [Test{str='one'}, Test{str='two'}]
相關用法
- Java Spliterator getExactSizeIfKnown()用法及代碼示例
- Java Spliterator hasCharacteristics()用法及代碼示例
- Java Spliterator estimateSize()用法及代碼示例
- Java Spliterator forEachRemaining()用法及代碼示例
- Java Spliterator trySplit()用法及代碼示例
- Java Spliterator tryAdvance()用法及代碼示例
- Java Spliterator characteristics()用法及代碼示例
- Java Guava Splitter limit()用法及代碼示例
- Java Guava Splitter omitEmptyStrings()用法及代碼示例
- Java Guava Splitter splitToList()用法及代碼示例
- Java Guava Splitter trimResults()用法及代碼示例
- Java Guava Splitter fixedLength()用法及代碼示例
- Java SimpleDateFormat equals()用法及代碼示例
- Java StringReader read()用法及代碼示例
- Java Stack addAll(Collection)用法及代碼示例
- Java StringBuilder toString()用法及代碼示例
- Java SimpleDateFormat parse()用法及代碼示例
- Java String valueOf()用法及代碼示例
- Java SimpleTimeZone setRawOffset()用法及代碼示例
- Java StrictMath log()用法及代碼示例
注:本文由純淨天空篩選整理自 Java Spliterator getComparator() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。