@Override public Spliterator<T> trySplit() { Spliterator<T> split = source.trySplit(); if (split == null) return null; if (counts.getClass() == HashMap.class) { if (!source.hasCharacteristics(NONNULL)) { Long current = counts.remove(null); nullCounter = new AtomicLong(current == null ? 0 : current); } counts = new ConcurrentHashMap<>(counts); } return new DistinctSpliterator<>(split, atLeast, nullCounter, counts); }
result = new DistinctSpliterator<>(spliterator, atLeast); return supply(result);