Метод trySplit
Метод trySplit класса Spliterator пытается разделить текущий сплитератор на два независимых сплитератора. Если разделение возможно, метод возвращает новый сплитератор, который покрывает часть элементов исходного, а исходный сплитератор при этом исключает эти элементы из своего диапазона. Если разделение невозможно, метод возвращает null. Метод не принимает параметров. Разделение обычно используется для параллельной обработки элементов коллекции.
Синтаксис
spliterator.trySplit()
Пример
Давайте создадим сплитератор для списка и разделим его на две части:
import java.util.List;
import java.util.Spliterator;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
Spliterator<String> spliterator = list.spliterator();
Spliterator<String> newSpliterator = spliterator.trySplit();
System.out.println("First part:");
spliterator.forEachRemaining(System.out::println);
System.out.println("Second part:");
newSpliterator.forEachRemaining(System.out::println);
}
}
Результат выполнения кода:
First part:
c
d
e
Second part:
a
b
Пример
Давайте проверим, что будет, если сплитератор уже нельзя разделить:
import java.util.List;
import java.util.Spliterator;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
Spliterator<String> spliterator = list.spliterator();
Spliterator<String> firstSplit = spliterator.trySplit();
Spliterator<String> secondSplit = firstSplit.trySplit();
Spliterator<String> thirdSplit = secondSplit.trySplit();
System.out.println(thirdSplit);
}
}
Результат выполнения кода:
null
Смотрите также
-
класс
Spliterator,
который представляет собой итератор для параллельной обработки -
метод
tryAdvance,
который выполняет действие для следующего элемента -
метод
estimateSize,
который возвращает оценку количества элементов -
метод
spliterator,
который создает сплитератор для коллекции