您的#4可能会写得更短一些:
final List<B> list4 = Arrays.stream(array)
.map(a -> new B(a.getIntValue(), a.getStringValue()))
.collect(toCollection(() -> new ArrayList<>(array.length)));
final List<B> list4 = Arrays.stream(array)
.map(SomeClass::mapA2B)
.collect(toCollection(() -> new ArrayList<>(array.length)));
private static B mapA2B(A a) {
return new B(a.getIntValue(), a.getStringValue());
}