У вас уже есть хороший технический ответ, поэтому давайте добавим четкий не ответ.
Это здесь: List<Object[2]>
чувствует себя оооочень неправильно.
Почему бы вам не использовать что-то вроде: List<Pair<Integer, String>>
?!
Другими словами: не отказывайтесь от информации о типах слегка. Не используйте Object[]
как контейнер для несимметрии для заполнения уже набранных вещей. Java - это статически скомпилированный язык . Значение: не сопротивляйся силам дженериков и строгой типизации, вместо этого следуй им.
И код ответа превращается в:
.reduce(p1, p2 -> new Pair<>(p1.first * p2.first, p1.second + p2.second))
Серьезно: он начинается с использования Object[]
... и заканчивается тем, что вы переключаетесь на ruby, потому что динамическая типизация!