Описание тега spliterator

Java Spliterator похож на итератор, но он поддерживает не только методы для обхода источника данных, но и для его разделения (разделения). Это позволяет использовать сплитератор как при последовательном, так и при параллельном обходе потока Java.
2 ответа

Оценка Size() для последовательного Spliterator

Я реализую Spliterator что явно ограничивает распараллеливание, имея trySplit() вернуть null, Будет внедрять estimateSize() предложить какие-либо улучшения производительности для потока, созданного этим сплитератором? Или приблизительный размер поле…
07 июн '15 в 09:03
2 ответа

Как ограничить поток для запуска последовательно и запретить его параллельную работу?

У меня есть метод, который возвращает поток, который генерируется из пользовательского сплитератора; Сплитератор не является безопасным протектором. Поскольку сплитератор не является безопасным протектором и поддерживает состояние, я хочу, чтобы он …
20 ноя '15 в 20:39
1 ответ

Странные циклы, используемые в Spliterator of Java 8

Кто-нибудь знает, почему java.util.Spliterator реализация использует циклы do-while, а не while, когда тело цикла пустое? Например, реализация forEachRemaining является: default void forEachRemaining(Consumer<? super T> action) { do { } while …
19 май '16 в 12:41
4 ответа

Понимание Spliterator, Collector и Stream в Java 8

У меня проблемы с пониманием Stream интерфейс в Java 8, особенно там, где это связано с Spliterator а также Collector интерфейсы. Моя проблема в том, что я просто пока не могу понять Spliterator и Collector интерфейсы, и в результате Stream Интерфей…
07 окт '13 в 22:05
1 ответ

Понимание последовательных и параллельных потоковых сплитераторов в Java 8 и Java 9

Вопрос о сплитераторах, на первый взгляд, не простой. В потоках, .parallel() изменяет поведение, которое обрабатывает поток Однако я ожидал, что сплитераторы, созданные из последовательных и параллельных потоков, будут одинаковыми. Например, в после…
12 окт '17 в 12:19
3 ответа

Как реализовать Spliterator для потоковой передачи чисел Фибоначчи?

Я играю с Java 8 Spliterator и создал один для потоковой передачи чисел Фибоначчи до заданного n. Так что для серии Фибоначчи 0, 1, 1, 2, 3, 5, 8, ... n fib(n) ----------- -1 0 1 0 2 1 3 1 4 2 Ниже приведена моя реализация, которая печатает кучу 1, …
3 ответа

Неразделимые сплитераторы

Я пытаюсь понять как Spliterator работает, и как сплитераторы разработаны. Я признаю это trySplit() вероятно, один из наиболее важных методов Spliterator, но когда я вижу какой-то сторонний Spliterator реализации, иногда я вижу, что их сплитераторы …
05 мар '15 в 02:45
3 ответа

Какой будет хороший сценарий использования Spliterator в Java 8?

Какой будет хороший сценарий использования для Spliterator класс в Java 8?
2 ответа

Как я могу создать универсальный пейджинговый сплитератор?

Я хотел бы иметь возможность обрабатывать чтение потока Java из источника, который должен быть доступен на страницах. В качестве первого подхода я реализовал итератор подкачки, который просто запрашивал страницы, когда на текущей странице заканчивал…
30 июн '16 в 16:05
2 ответа

Spliterator Java 8 - пользовательская реализация

Я изучаю эту функцию Java 8, и мне действительно трудно понять Spliterator интерфейса trySplit() реализация метода в случае пользовательских классов для параллельной обработки сгенерированного Stream, Может кто-нибудь помочь мне с хорошим учебником …
26 окт '18 в 11:49
2 ответа

Странная реализация tryAdvance в Spliterator.OfInt

Как это работает? Как может Consumer<? super Integer> быть брошенным на IntConsumer?? default boolean tryAdvance(Consumer<? super Integer> action) { if (action instanceof IntConsumer) { return tryAdvance((IntConsumer) action); } else { i…
20 июн '15 в 10:23
1 ответ

Spliterator Java 8

У меня есть число от 1 до 10000, хранящихся в массиве long, Последовательное добавление их даст 50,005,000.Я написал Spliterator, где, если размер массива превышает 1000, он будет разделен на другой массив. Вот мой код Но когда я запускаю его, резул…
22 июл '15 в 13:23
3 ответа

Параллельный поток вызывает Spliterator больше раз, чем его предел

Я недавно обнаружил ошибку, в которой StreamSupport.intStream(/* a Spliterator.ofInt */, true) .limit(20) вызывал Spliterator.ofInt.tryAdvance более 20 раз. Когда я изменил это на StreamSupport.intStream(/* a Spliterator.ofInt */, true) .sequential(…
03 окт '17 в 01:10
2 ответа

Разница между Итератором и Сплитератором в Java8

Я узнал, изучая это Parallelism это главное преимущество Spliterator, Это может быть основной вопрос, но может ли кто-нибудь объяснить мне основные различия между Iterator а также Spliterator и привести несколько примеров?
3 ответа

Stream.spliterator() закрывает поток?

Ли stream.spliterator() неявно закрывает streamили есть необходимость явно закрыть его потом? Stream<String> stream = Stream.of("a", "b", "c"); Spliterator<T> spliterator = stream.spliterator(); // Some low lever operation with the split…
11 окт '17 в 12:59
1 ответ

Есть ли какая-либо опасность в выполнении действия.accept() более чем одним элементом реализации Spliterator.tryAdance()?

Javadoc of Spliterator упоминает, что: Spliterator может проходить элементы по отдельности (tryAdvance()) или последовательно навалом (forEachRemaining()). Затем мы идем в Javadoc tryAdvance() что говорит о том, что: Если оставшийся элемент существу…
28 апр '16 в 17:34
2 ответа

Невозможно перебрать поток, созданный (второй раз) с помощью Steam.spliterator на Iterable

Я не могу перебрать (второй раз) поток, созданный с помощью Steam.spliterator. Я не мог найти документацию о том же. Вот что я делаю: Я получил Iterable как аргумент funciton, и я повторяю это через поток, как следующий код: StreamSupport.stream(val…
06 май '16 в 09:01
2 ответа

Spliterator для неизменного связанного списка

Это классическая реализация неизменяемого связанного списка: public abstract class List<A> implements Iterable<A> { private static final List NIL = new Nil(); public abstract A head(); public abstract List<A> tail(); public List&lt…
2 ответа

Поток суперклассов Java 8, родительские файлы, родительские компоненты, связанный список и т. Д.

Я хотел бы преобразовать следующее for оператор в поток Java 8 (т.е. Stream<Class<?>>). Идеальное решение было бы достаточно простым, чтобы я мог легко адаптировать его для различных ситуаций обхода связанного списка (например, File.getP…
22 янв '16 в 22:03
3 ответа

Зачем перегружать метод varargs () в интерфейсе Java Stream?

Интерфейс Stream имеет две перегрузки для метода of(), Одним из них является метод переменной-арности, в то время как другой принимает один аргумент. Является ли метод с одним аргументом оптимизацией производительности по сравнению с передачей одног…