java - 在 Java 8 中不使用预定义方法将集合转换为另一种集合类型

标签 java collections java-8

我正在寻找的是一种使用 streamsma​​p 将一种类型的集合转换为另一种类型的集合的方法,而无需预定义函数/功能将对象 A 转换为对象 B 的接口(interface)。Java 6 示例:

for (ObjectA objA : collectionA) {
    ObjectB objB = new ObjectB();
    objB.setId(objA.getId());
    collectionB.add(objB);
}

我正在寻找以下内容:

List<ObjectB> collectionB = collectionA.stream().map(objA -> {
    ObjectB objB = new ObjectB();
    objB.setId(objA.getId());
    return objB;
});

这当然行不通,但您明白了我正在尝试做的事情的要点。

最佳答案

完成映射后,您必须收集映射的对象:

List<ObjectB> collectionB = collectionA.stream().map(objA -> {
    ObjectB objB = new ObjectB();
    objB.setId(objA.getId());
    return objB;
}).collect(Collectors.toList());

关于java - 在 Java 8 中不使用预定义方法将集合转换为另一种集合类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560824/

相关文章:

java - 带时间的日志文件名不能正常工作

java - 可以将 Java 嵌套/匿名类转换为顶级类的命令行工具

Java 集合 : List<Animal> tiger = new ArrayList<Tiger>() WRONG

java - 在Java集合框架中如何确保循环链表的所有对象至少被遍历一次而不重复?

java - 如何有效地应用数据库中巨大列表的多个位置变化?

java - 并行流是否可以在不同的操作下正常工作?

java - ${catalina.base}/lib 子目录下的属性文件解析

Java 不会在不包含 main 的不同类中打印

java - Java 8 向前兼容 Java 11 吗?

java - 如何避免使用递归调用使 executorservice 拥塞/停滞/死锁