循环并写入数组
Looping and writing into an Array
我正在编写一个程序,该程序能够处理不同年份的降水量数据,以打印出平均年降雨量、月平均值等。我的 class 中有一个 int[] getYears()
方法,它应该提取所有可用年份和 return 这些作为整数数组。
这是我编译的代码,但我不确定我做的是否真的正确:
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;
}
}
以下是我思考的步骤:
年份存储在 rainfallYears 数组中的 rainfallYearObject 中。
根据给定的年数,我想获取每一年并将其放入getYears数组中。
困扰我的是这一行
getYears[i] = rainfallYearObject.getYear();
我觉得这在逻辑上是错误的,即使我没有得到任何错误。我是在正确的轨道上,还是完全偏离了轨道?
UML 图:
此处有几个需要改进的地方,假设您发布的是整个 class:
1.) 首次声明字段(rainfallYears 和 getYears)时,无需将空值分配给它们。首次声明它们时,您无需为它们分配任何内容。
2.) 更改 getYears 字段或 getYears 方法的名称。具有相同名称的字段和方法可能会让人感到困惑。
3.) 您需要设置数组的大小,或者使用大小可变的东西,例如 ArrayLists <-- 这将有助于解决您所说的困扰您的部分
4.) 在您的 for 循环中,您有一个 for-each 循环 ("for each rainfallYear in rainfallYears") 和一个 for 循环(按索引计数,在您的情况下为 i)。选择一个或另一个,但你不需要两者。如果您坚持使用数组,请使用 for 循环(索引类型)
5.) 在您的构造函数中,将您的 getYears 字段设置为等于您的 getYears 方法的结果(但再次重命名其中之一)。
6.) 鉴于你的两个字段都是私有的,你可能希望有 public getter 方法来使值在 class 之外可访问(如果你完好无损地希望它们可以访问)。
希望这对您有所帮助:)
我正在编写一个程序,该程序能够处理不同年份的降水量数据,以打印出平均年降雨量、月平均值等。我的 class 中有一个 int[] getYears()
方法,它应该提取所有可用年份和 return 这些作为整数数组。
这是我编译的代码,但我不确定我做的是否真的正确:
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;
}
}
以下是我思考的步骤:
年份存储在 rainfallYears 数组中的 rainfallYearObject 中。
根据给定的年数,我想获取每一年并将其放入getYears数组中。
困扰我的是这一行
getYears[i] = rainfallYearObject.getYear();
我觉得这在逻辑上是错误的,即使我没有得到任何错误。我是在正确的轨道上,还是完全偏离了轨道?
UML 图:
此处有几个需要改进的地方,假设您发布的是整个 class:
1.) 首次声明字段(rainfallYears 和 getYears)时,无需将空值分配给它们。首次声明它们时,您无需为它们分配任何内容。
2.) 更改 getYears 字段或 getYears 方法的名称。具有相同名称的字段和方法可能会让人感到困惑。
3.) 您需要设置数组的大小,或者使用大小可变的东西,例如 ArrayLists <-- 这将有助于解决您所说的困扰您的部分
4.) 在您的 for 循环中,您有一个 for-each 循环 ("for each rainfallYear in rainfallYears") 和一个 for 循环(按索引计数,在您的情况下为 i)。选择一个或另一个,但你不需要两者。如果您坚持使用数组,请使用 for 循环(索引类型)
5.) 在您的构造函数中,将您的 getYears 字段设置为等于您的 getYears 方法的结果(但再次重命名其中之一)。
6.) 鉴于你的两个字段都是私有的,你可能希望有 public getter 方法来使值在 class 之外可访问(如果你完好无损地希望它们可以访问)。
希望这对您有所帮助:)