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


Java Spliterator getComparator()用法及代碼示例

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