В реализации Java Stream API они используют структуру данных, которую они называют SpinedBuffer
, в java Do c они описывают ее следующим образом:
Один или несколько массивов используется для хранения элементов. Использование нескольких массивов имеет лучшие характеристики производительности, чем один массив, используемый {@link ArrayList}, поскольку при необходимости увеличения емкости списка копирование элементов не требуется. Обычно это полезно в том случае, если результаты будут просматриваться небольшое количество раз
Я хочу знать:
Как в этой структуре данных используется несколько массив для повышения производительности
Существует еще одна концепция, которая называется chunk в реализации этой структуры данных, что такое chunk и как они используют его для реализации этой структуры данных