当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。