В Guava вы не конвертируете существующие списки, а вместо этого создаете новый, используя Iterables.transform:
final List<String> list = Arrays.asList("race", "box");
final List<String> transformed =
Lists.newArrayList(Iterables.transform(list, new Function<String, String>() {
@Override
public String apply(final String input) {
return new StringBuilder().append(input).append("car").toString();
}
}));
System.out.println(transformed);
Выход:
[гоночный автомобиль, вагон]
Или, если вам не нужны List
и Collection
, вы можете использовать преобразованный вид в реальном времени:
final Collection<String> transformed =
Collections2.transform(list, new Function<String, String>() {
@Override
public String apply(final String input) {
return new StringBuilder().append(input).append("car").toString();
}
});
Этот Collection
является живым представлением нижележащего, поэтому изменения в list
будут отражены в этом Collection
.