使用java将列表复制到另一个列表[已关闭]

cl25kdpy  于 2022-11-20  发布在  Java
关注(0)|答案(2)|浏览(138)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

1小时前关闭。
Improve this question
我在java中有两个列表,分别输入到两个类中。
头等舱。

public class House implements Entity {

    float length;
    float width;

//setters and getters

二等舱:

public class HousesWithTotal implements Entity {

    private List<house> houses;
    private float totalLength;
    private float totalWidth;

//setters and getters

}

主要是,我创建了房屋列表,并在上面输入了数据,然后我需要将它复制到属性中房屋列表的HousesWithTotal对象中,我该怎么做呢?

gt0wga4j

gt0wga4j1#

我建议在类中封装逻辑。

  • 使类不可变
  • 计算出的totalLengthtotalWidth应在HouseWithTotal类中。
@Getter
@RequiredArgsConstructor
public final class House {

    private final double length;
    private final double width;
}

@Getter
public final class HousesWithTotal {

    private final List<House> houses = new ArrayList<>();
    private double totalLength;
    private double totalWidth;

    public void addHouse(House house) {
        houses.add(house);
        totalLength += house.getLength();
        totalWidth += house.getWidth();
    }

}

演示版

public static void main(String... args) {
    List<House> houses = List.of(
            new House(1, 2),
            new House(3, 4),
            new House(5, 6));

    HousesWithTotal housesWithTotal = new HousesWithTotal();

    for(House house : houses)
        housesWithTotal.addHouse(house);

    System.out.println(housesWithTotal.getTotalLength());   // 9.0
    System.out.println(housesWithTotal.getTotalWidth());    // 12.0
}
cwdobuhd

cwdobuhd2#

创建一个新的ArrayList,并使用构造函数或addAll方法处理源列表。

相关问题