当前位置: 首页 > 知识库问答 >
问题:

在Java 8中,如何使用Stream将List转换为List?[副本]

颜功
2023-03-14

我有列表:

List<Point[]> listPoints = ...
List<Quadrangle> quadrangles = ...

如何转换列表

需要更换:

for(Point[] groupPoints : listPoints) {
            quadrangles.add(new Quadrangle(groupPoints));
}

对象具有构造函数:

public Quadrangle(Point[] points) {
        this.p1 = points[0];
        this.p2 = points[1];
        this.p3 = points[2];
        this.p4 = points[3];
    }

我试过这个:

List<Quadrangle> quadrangles = listPoints.stream()
                .collect(Collectors.toCollection(o -> new Quadrangle(o)));

但这对我不起作用。我得到错误:

Required  type:Point[]
Provided: <lambda parameter>

我认为lambda参数是数组的点[],但不是。

共有1个答案

邰昀
2023-03-14

像这样试试。

  • 流式处理点阵列列表
  • 映射到四边形的新实例(这将应用构造函数参数)
  • 返回四边形列表
List<Quadrangle> quads = listPoints.stream()
.map(Quadrangle::new)
.collect(Collectors.toList());
 类似资料: