循环并写入数组

时间:2015-11-19 02:13:45

标签: java arrays loops assign

我正在编写一个程序,能够操纵不同年份的降水数据,打印出平均年降雨量,月平均值等等。我的课程中有一个int[] getYears()方法可以提取所有的可用年份并将这些作为整数数组返回。

这是我编译的代码,但我不确定我所做的是否真的是正确的:

public class Rainfall {

private RainfallYear[] rainfallYears = null;
private int[] getYears = null;

public int[] getYears() {

    for (RainfallYear rainfallYearObject : rainfallYears) {
        for (int i = 0; i < rainfallYears.length; i++) {
            getYears[i] = rainfallYearObject.getYear();
        }
    }

    return getYears;
}

public Rainfall(RainfallYear[] rainfallYears) {
    super();
    this.rainfallYears = rainfallYears;
} 
}

以下是我的想法:

  1. 年份存储在rainfallYearObject中,该数字位于rainfallYears数组中。

  2. 根据给定的年数,我希望每年都能将它放入getYears数组中。

  3. 困扰我的是这条线

    getYears[i] = rainfallYearObject.getYear();
    

    我觉得这在逻辑上是错误的,即使我没有收到任何错误。我是在正确的轨道上,还是完全关闭?

    UML图表:

    Project UML

1 个答案:

答案 0 :(得分:1)

假设您发布的内容是您的整个课程,请在此处提出改进方面:

1。)首次声明时,不需要为字段(rainfallYears和getYears)指定null。首次声明它们时,无需为它们分配任何内容。

2.。)更改getYears字段或getYears方法的名称。使用具有相同名称的字段和方法可能会让人感到困惑。

3。)您需要设置数组的大小,或者使用可变大小的内容,例如ArrayLists&lt; - 这将有助于解决您所说的困扰您的部分

4。)在你的for循环中,你有一个for-each循环(“每个rainYear in rainfallYears”)和一个for循环(按索引计算,在你的情况下为i)。选择一个或另一个,但你不需要两者。如果您坚持使用Arrays,请使用for循环(索引类型)

5.)在构造函数中,将getYears字段设置为等于getYears方法的结果(但同样重命名其中一个)。

6。)鉴于您的两个字段都是私有的,您可能希望使用公共getter方法使值可以在类外部访问(如果您完整地希望它们可以访问)。

希望这会有所帮助:)