You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将基于数组的矩形Java程序改为使用ArrayList实现?

完整解决方案

1. ArrayList类型定义说明

存储Rectangle对象的ArrayList类型应为ArrayList<Rectangle>,这是Java泛型的标准用法,明确指定列表仅能存放Rectangle实例,避免后续类型转换的冗余与风险。

2. 完整代码实现

自定义Rectangle类(适配原有程序的方法定义)

public class Rectangle {
    private double width;
    private double height;

    // 默认构造方法:生成宽高为1.0的矩形
    public Rectangle() {
        this.width = 1.0;
        this.height = 1.0;
    }

    // 计算面积
    public double getArea() {
        return width * height;
    }

    // 计算周长
    public double getPerimeter() {
        return 2 * (width + height);
    }
}

主程序(替换数组为ArrayList实现)

import java.util.ArrayList;
import java.util.Scanner;

public class RectangleDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 输入矩形数量
        System.out.print("请输入要生成的矩形数量:");
        int count = scanner.nextInt();

        // 初始化存储Rectangle的ArrayList
        ArrayList<Rectangle> rectangles = new ArrayList<>();

        // 循环生成默认宽高的矩形并添加到列表
        for (int i = 0; i < count; i++) {
            rectangles.add(new Rectangle());
        }

        // 遍历列表,计算并输出每个矩形的面积与周长
        for (int i = 0; i < rectangles.size(); i++) {
            Rectangle currentRect = rectangles.get(i);
            System.out.printf("第%d个矩形:面积=%.2f,周长=%.2f%n", 
                    i + 1, currentRect.getArea(), currentRect.getPerimeter());
        }

        scanner.close();
    }
}

3. 关键逻辑说明

  • ArrayList初始化:ArrayList<Rectangle> rectangles = new ArrayList<>(); 利用Java 7+的菱形运算符<>自动推断泛型类型,简化代码。
  • 元素操作:通过add()方法向列表添加矩形实例,size()获取列表长度,get(index)获取指定位置的元素,替代数组的下标访问方式。
  • 遍历逻辑:使用普通for循环遍历列表,也可改用增强for循环简化代码:
    for (Rectangle rect : rectangles) {
        // 输出逻辑同上
    }
    

内容的提问来源于stack exchange,提问作者Kraken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:10