7
如在this question中所述,distinct()
的实现能够在运行时知道其操作的流被排序时使用更高效的算法。如果我们知道该流是排序的(例如,因为它来自外部预先排序的数据源,例如带有order by
子句的SQL查询),但是没有被标记为这样,我们如何才能达到类似的结果?有一个unordered()
操作可以删除排序标志,但据我所知,没有办法告诉系统数据已经从外部排序。Java Streams:预排序流上的distinct()?
我使用第三方库中产生的数据流,所以我完全不创造spliterators自己。我想我*可以使用某种代理分割器,这可能会起作用。 – Jules
是的,报告不同特征的包装分割器似乎是唯一的解决方案。 – Holger