gpt4 book ai didi

java - 循环并写入数组

转载 作者:行者123 更新时间:2023-12-01 10:52:15 25 4
gpt4 key购买 nike

我正在编写一个程序,该程序将能够操纵有关不同年份的降水量的数据,以打印出年平均降水量、月平均降水量等。我的程序中有一个 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. 年份存储在降雨年对象中,该对象位于降雨年数组内。

  2. 根据给定的年数,我想获取每年并将其放入 getYears 数组中。

令我困扰的是这一行

getYears[i] = rainfallYearObject.getYear();

我感觉这在逻辑上是错误的,尽管我没有得到任何错误。我是在正确的轨道上,还是完全偏离了轨道?

UML图:

Project UML

最佳答案

这里有几个需要改进的地方,假设您发布的内容是您的整个类(class):

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

2.) 更改 getYears 字段或 getYears 方法的名称。字段和方法同名可能会造成混淆。

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

4.) 在您的 for 循环中,您有一个 for-each 循环(“对于降雨年中的每个降雨年”)和一个 for 循环(按索引计数,在您的情况下为 i )。选择其中之一,但不需要两者都需要。如果您坚持使用数组,请使用 for 循环(索引类型)

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

6.) 鉴于您的两个字段都是私有(private)的,您可能希望拥有公共(public) getter 方法来使值在类外部可访问(如果您确实希望它们可访问)。

希望这有帮助:)

关于java - 循环并写入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com