long totalSum = listOfClassB.stream()
.mapToInt(elem -> elem.getAnotherObjList().size())
.sum();
Я думаю, что результатом суммы будет long
, так как несколько целых чисел могут идти до значения max int;вы всегда можете разыграть его, если уверены, что это не приведет к переполнению.
Это не совсем одна строка, по крайней мере, как отформатировано выше, но, возможно, она вписывается в одно выражение.
Если case и element в первом списке имеют значение null или если getAnotherObjList () возвращает null, вы можете поддержать это, отфильтровав эти случаи:
long totalSum = listOfClassB.stream()
.filter(Objects::nonNull)
.map(ClassB::getAnotherObjList)
.filter(Objects::nonNull)
.mapToInt(List::size)
.sum();