使用 ArrayList 构造函数制作 List 的转换副本

Make a transformed copy of a List using ArrayList constructor

我不知道你们怎么称呼它,但是可以写这样的东西吗?只有这两行。

List<Celsius> listOfCelsiuses = new ArrayList<>();
List<Fahrenheit> listOfFahrenheits = new ArrayList<>(listOfCelsiuses);

它基本上采用摄氏度列表和 returns 华氏度列表。但是我应该在哪里实现该转换逻辑?

在 java 8 中,这是一个候选 Stream 和一个 map 调用:

List<Celsius> celsius;
final List<Fahrenheit> fahrenheit = celsius.stream()
                                           .map(c -> convert(c))
                                           .collect(Collectors.toList());

private static Fahrenheit convert(Celsius c) {

在 jre 8 之前,您可以使用 Gauva 的 Lists.transform with a Function 进行转换。