20

不変リストを別の不変リストに変換するためのワンライナー 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);

しかし、中間オブジェクトなしで、この種の変換のためにパフォーマンスが最適化されたワンライナーがどこかにあるに違いないと思います。それはどこにある?

4

3 に答える 3