java - 在 Java 中将一个列表映射到另一个列表的最优雅的方法是什么?

标签 java

我是 Java 新手,所以请耐心等待。

将列表映射(转换)为列表是很常见的。有些语言有 map 方法,有些 (C#) Select。这是如何用 Java 完成的? for 循环是唯一的选择吗?

我希望能够做这样的事情:

List<Customer> customers = new ArrayList<Customer>();
...
List<CustomerDto> dtos = customers.convert(new Converter(){
  public convert(c) {
    return new CustomerDto();
  }
})

我错过了什么?请给我一个起点。

最佳答案

在 Java 中没有执行此操作的内置方法 - 您必须编写或使用辅助类。 Google Collections包括

public static <F,T> List<T> transform(List<F> fromList,
                                  Function<? super F,? extends T> function)

这很好用,但使用起来有点笨拙,因为您必须使用单方法匿名类和静态方法。这不是 Google Collections 的错,这只是在 Java 中执行此类任务的本质。

请注意,这会根据需要延迟转换源列表中的项目。

关于java - 在 Java 中将一个列表映射到另一个列表的最优雅的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864315/

相关文章:

Java 数组索引越界

java - JTextField 正在更新字符串数据和垃圾数据

Java读取并加载图像

java - GWTTestCase - 未找到测试

java - 在 Spring-MVC 中,如何动态设置 session 属性的构造函数参数?

java - 编写一个带有两个 int 参数的方法。如何使用下面提供的信息声明更多局部 int 变量

java - 身份验证成功后将 JSON 数据传递给 HTML - Spring security 和 Spring MVC

java - setPreferredSize 的副作用是什么?

java - 在 Java 应用程序中保存文件的好地方是什么?

java - 如何在循环末尾连接数组