Spliterators irretocáveis
Estou tentando entender comoSpliterator
funciona e como os spliterators são projetados. Eu reconheço issotrySplit()
é provavelmente um dos métodos mais importantes deSpliterator
, mas quando vejo terceirosSpliterator
implementações, às vezes vejo que seus separadores retornam nulos paratrySplit()
incondicionalmente.
As questões:
Existe uma diferença entre um iterador comum e umSpliterator
que retorna nulo incondicionalmente? Parece que esse spliterator derrota o ponto de, bem, dividir.Obviamente, existem casos de uso legítimos de spliterators que retornam condicionalmente nulos emtrySplit()
, mas existe um caso de uso legítimo de um separador que retorne incondicionalmente nulo?