【发布时间】:2020-07-05 11:29:51
【问题描述】:
例如
class TypeA {
private String a;
private String b;
private String c;
}
class TypeB {
private String a;
}
现在我有一个TypeA 的列表,我只需要来自TypeA 的信息a。
将List<TypeA> 转换为List<TypeB> 的最有效方法是什么
【问题讨论】:
-
我不知道这里的效率是一个问题。您总是需要遍历
List<TypeA>中的每个元素并创建TypeB的新实例。你遇到什么问题了吗?到目前为止,您尝试过什么? -
以何种方式高效 - 运行速度最快?需要最少的思考?如果“跑得最快”——为什么一开始就有 TypeA 和 TypeB,最有效的方法可能是摆脱一个而只使用另一个?您甚至需要列表中的所有项目吗?
-
因为没有 setter、getter 或构造函数,你... 不能 ...转换这些类型。您无法从任一对象获取或放置数据。
-
List<TypeB> listOfBs = listOfAs.stream().map(a -> {TypeB b = new TypeB(); b.a = a.a; return b;}).collect(Collectors.toList()
标签: java list generics arraylist converters