Метод estimateSize
Метод estimateSize возвращает оценку количества
элементов, которые остались для обхода в данном
Spliterator. Метод не принимает параметров.
Если количество элементов известно точно, метод
вернет точное значение. Если количество неизвестно,
вернется приблизительная оценка или константа
Long.MAX_VALUE. После вызова метода
trySplit или tryAdvance оценка
может уменьшаться.
Синтаксис
long estimateSize()
Пример
Давайте создадим список и получим его
Spliterator, а затем выведем оценку
количества элементов:
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();
System.out.println(spliterator.estimateSize());
}
}
Результат выполнения кода:
5
Пример
Давайте обойдем один элемент через tryAdvance
и проверим, как изменится оценка размера:
import java.util.List;
import java.util.Spliterator;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
Spliterator<Integer> spliterator = list.spliterator();
spliterator.tryAdvance(System.out::println);
System.out.println(spliterator.estimateSize());
}
}
Результат выполнения кода:
1
4
Пример
Давайте разделим 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> part = spliterator.trySplit();
System.out.println(part.estimateSize());
System.out.println(spliterator.estimateSize());
}
}
Результат выполнения кода:
2
3
Смотрите также
-
класс
Spliterator,
который представляет собой обходчик элементов -
метод
tryAdvance,
который обходит один элемент -
метод
trySplit,
который делит Spliterator на две части -
метод
spliterator,
который возвращает Spliterator для коллекции