Java Streams:预处理中的distinct()

正如在这个问题中所讨论的,当运行时知道它运行的流被排序时, distinct()的实现能够使用更高效的算法。 如果我们知道流是排序的(例如,因为它来自外部预先排序的数据源,例如带有order by子句的SQL查询),但是没有标记,我们如何才能实现类似的结果? 有一个unordered()操作去除了排序标志,但是据我所知,没有办法告诉系统数据已经从外部排序。


您可以围绕现有的集合创建分割器,例如:

    List<Integer> list = Arrays.asList(1, 2, 3, 4);

    Spliterator<Integer> sp = Spliterators.spliterator(list, Spliterator.SORTED);

    System.out.println(sp.hasCharacteristics(Spliterator.SORTED)); // true
链接地址: http://www.djcxy.com/p/40445.html

上一篇: Java Streams: distinct() on a pre

下一篇: Google Analytics 'Mobile Device Model' and Android's Build.MODEL