将一种元素类型的列表转换为另一种类型的列表
我正在编写一个适配器框架,我需要将对象列表从一个类转换为另一个类。我可以循环访问源列表以执行此操作,如
Java:将List<Integer>转换为List<String>
但是,我想知道是否有一种方法可以在迭代目标列表时动态执行此操作,因此我不必迭代列表两次。
我正在编写一个适配器框架,我需要将对象列表从一个类转换为另一个类。我可以循环访问源列表以执行此操作,如
Java:将List<Integer>转换为List<String>
但是,我想知道是否有一种方法可以在迭代目标列表时动态执行此操作,因此我不必迭代列表两次。
Java 8 方式:
List<String> original = ...;
List<Wrapper> converted = original.stream().map(Wrapper::new).collect(Collectors.toList());
假设类有一个接受 .Wrapper
String
我对这个问题的回答适用于您的情况:
import com.google.common.collect.Lists;
import com.google.common.base.Functions
List<Integer> integers = Arrays.asList(1, 2, 3, 4);
List<String> strings = Lists.transform(integers, Functions.toStringFunction());
转换后的列表是原始集合上的视图,因此转换在访问目标时发生。List