将一种元素类型的列表转换为另一种类型的列表

2022-09-02 02:28:12

我正在编写一个适配器框架,我需要将对象列表从一个类转换为另一个类。我可以循环访问源列表以执行此操作,如

Java:将List<Integer>转换为List<String>

但是,我想知道是否有一种方法可以在迭代目标列表时动态执行此操作,因此我不必迭代列表两次。


答案 1

Java 8 方式:

List<String> original = ...;
List<Wrapper> converted = original.stream().map(Wrapper::new).collect(Collectors.toList());

假设类有一个接受 .WrapperString


答案 2

我对这个问题的回答适用于您的情况:

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