不変リストを別の不変リストに変換するためのワンライナー 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);
しかし、中間オブジェクトなしで、この種の変換のためにパフォーマンスが最適化されたワンライナーがどこかにあるに違いないと思います。それはどこにある?