Я думаю, что должно быть однострочное решение Guava для преобразования неизменяемого списка в другой неизменный список, но я не могу его найти. Предположим, что у нас есть следующие объекты:
ImmutableList<String> input = ImmutableList.of("a", "b", "c");
Function<String, String> function = new Function<String, String>() {
@Override
public String apply(String input) {
return input + input;
}
};
Преобразование может быть выполнено следующим образом:
Iterable<String> transformedIt = Iterables.transform(input, function);
ImmutableList<String> output = ImmutableList.<String>builder().addAll(transformedIt).build();
или вот так:
List<String> transformedList = Lists.transform(input, function);
ImmutableList<String> output2 = ImmutableList.copyOf(transformedList);
но я думаю, что для такого рода преобразований должен быть где-то оптимизированный по производительности однострочный, без промежуточных объектов, я просто не могу его найти. Где это?