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

Java中创建独立类输出随机数组的最小值与最大值

解决方案

1. 创建独立的MinMaxStats类

这个类负责从Data对象中提取数组,计算并存储最小值和最大值:

package Pck1;

public class MinMaxStats {
    public Data data;
    public int min;
    public int max;

    // 无参构造
    public MinMaxStats() {}

    // 接收Data对象的构造
    public MinMaxStats(Data data) {
        this.data = data;
    }

    // 计算最小值和最大值的方法
    public void calculateMinMax() {
        int[] ary = data.ary;
        // 初始化min和max为数组第一个元素(假设数组非空)
        min = ary[0];
        max = ary[0];

        for (int num : ary) {
            if (num < min) {
                min = num;
            }
            if (num > max) {
                max = num;
            }
        }
    }
}

2. 修改MainClass调用新类

在主方法中实例化MinMaxStats,调用计算方法后输出结果:

package Pck1;

public class MainClass {

    public static void main(String[] args) {
        //create data object
        Data data = new Data(15, 101);
        //15 is the size and 101 is the range -- 101 including 0. so 100 is the max range
        data.displayData();

        Stats st = new Stats(data);
        st.calculateSum();
        System.out.println("sum = " + st.sum);

        // 新增:计算并输出最值
        MinMaxStats minMaxStats = new MinMaxStats(data);
        minMaxStats.calculateMinMax();
        System.out.println("最小值 = " + minMaxStats.min);
        System.out.println("最大值 = " + minMaxStats.max);
    }
}

逻辑说明

  • 计算最值时,先将min和max初始化为数组的第一个元素(你的Data类构造都会初始化数组,无需担心空数组问题)。
  • 遍历数组中的每个元素,依次和当前min、max比较:如果元素更小,更新min;如果更大,更新max。
  • 整个计算逻辑完全封装在MinMaxStats类中,满足“独立类完成”的要求。

可选优化建议

如果想遵循更好的封装原则,可以把成员变量设为private,并提供getter方法避免直接访问:

package Pck1;

public class MinMaxStats {
    private Data data;
    private int min;
    private int max;

    public MinMaxStats(Data data) {
        this.data = data;
    }

    public void calculateMinMax() {
        int[] ary = data.ary;
        min = ary[0];
        max = ary[0];
        for (int num : ary) {
            if (num < min) min = num;
            if (num > max) max = num;
        }
    }

    public int getMin() {
        return min;
    }

    public int getMax() {
        return max;
    }
}

主方法调用改为:

System.out.println("最小值 = " + minMaxStats.getMin());
System.out.println("最大值 = " + minMaxStats.getMax());

内容的提问来源于stack exchange,提问作者darth.vater

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:18:26