Вы можете избежать пропуска явным образом с потоком, но внутри него, конечно, повторяется:
listOfAs = collectionOfA.stream().map(A::getA).collect(toList());
Обратите внимание, что для него требуется определить публичный метод String getA()
и определить List
, а неArrayList
для поля, что является хорошей практикой.
Если вам действительно нужно сохранить ArrayList
в качестве объявленного поля, вы все равно можете сделать:
listOfAs = collectionOfA.stream().map(A::getA).collect(toCollection(ArrayList::new);
Обратите внимание, что если список следует обновлять, а не просто перезаписывать, вы можете использовать addAll()
:
List<String> list = collectionOfA.stream().map(A::getA).collect(toList());
listOfAs.addAll(list);