Чтобы ответить на ваш отредактированный вопрос:
Копирование вложенных структур данных называется глубоким копированием . Для этого в Python используйте deepcopy()
в модуле copy
.
Вы можете использовать операцию reduce
:
Arrays.stream(info).reduce((s1, s2) -> s1.size + s2.size);
Или sum
, как показано @nullpointer:
Arrays.stream(info).mapToInt(StackInfo::getSize).sum();
Вы, похоже, ищете операцию sum
, а не count
, которая потребует от вас преобразования потока в основном в IntStream
. Вы можете обновить свой код:
private int numberOfElementsStream(StackInfo[] info) {
return Arrays.stream(info) // Stream<StackInfo>
.mapToInt(sd -> sd.size) //IntStream of their size
.sum(); // sum of all
}