Последовательность, повторно использующая один и тот же экземпляр NdArray
при повторении его элементов.
Публичные конструкторы
FastElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionIdx, элемент U, DataBufferWindow <?> elementWindow) |
Публичные методы
НдАррайСекуенс <U> | asSlices () Возвращает каждый элемент как новый срез. |
пустота | forEachIndexed (BiConsumer<long[], U> потребитель) |
Итератор<U> | итератор () |
Унаследованные методы
логическое значение | равно (Объект arg0) |
последний класс<?> | получитьКласс () |
интервал | хэш-код () |
окончательная пустота | уведомить () |
окончательная пустота | уведомитьВсе () |
Нить | toString () |
окончательная пустота | подождать (длинный arg0, int arg1) |
окончательная пустота | подождите (длинный arg0) |
окончательная пустота | ждать () |
абстрактный NdArraySequence <U расширяет NdArray <T>> | asSlices () Возвращает каждый элемент как новый срез. |
абстрактная пустота | forEachIndexed (BiConsumer<long[], U расширяет потребителя NdArray <T>>) Посетите каждый элемент этой итерации и их соответствующие координаты. |
Публичные конструкторы
public FastElementSequence ( AbstractNdArray <T, U> ndArray, int DimensionIdx, элемент U, DataBufferWindow <?> elementWindow)
Публичные методы
public NdArraySequence <U> asSlices ()
Возвращает каждый элемент как новый срез.
В отличие от обычных коллекций Java, элементы NdArraySequence
являются временными, т. е. для каждой итерации выделяются новые экземпляры NdArray
. Чтобы повысить производительность, один и тот же экземпляр можно повторно использовать для просмотра всех элементов этой последовательности с помощью DataBufferWindow
.
Однако в некоторых случаях может быть предпочтительнее отключить такую оптимизацию, чтобы гарантировать, что каждый возвращаемый элемент представляет собой новый фрагмент исходного массива. Например, если один или несколько посещенных элементов должны находиться за пределами итерации последовательности, asSlices()
гарантирует, что все элементы, возвращаемые последовательностью, являются уникальными экземплярами.
final List<IntNdArray> vectors = new ArrayList<>();
IntNdArray matrix = NdArrays.ofInts(Shape.of(6, 6));
ndArray.elements(0).forEach(e -> vectors::add); // Not safe, as `e` might always be the same recycled instance
ndArray.elements(0).asSlices().forEach(e -> vectors::add); // Safe, each `e` is a distinct NdArray instance
Возврат
- последовательность, которая возвращает каждый повторяемый элемент как новый срез