gpt4 book ai didi

java - 如何为 ArrayList 中的相应数据赋值

转载 作者:行者123 更新时间:2023-11-29 05:00:48 24 4
gpt4 key购买 nike

enter image description here我有 2 个数组列表。第一个包含 993 个浮点值。我将这 993 个浮点值的每 12 个实例相加,并将它们存储在另一个 ArrayList (993/12) 中,使第二个 ArrayList 的大小为 83。

这是第二个 ArrayList 的片段:

919.2, 927.9, 809.39996, 633.8, 626.8, 871.30005, 774.30005, 898.8, 789.6, 936.3, 765.4, 882.1, 681.1, 661.3, 847.9, 683.9, 985.7, 771.1, 736.6, 713.2001, 774.49994, .. .

这些值中的第一个即 919.2 对应于 1930 年。

第二个 927.9 对应于 1931 年。

第三个 809.39996 对应于 1932 年,依此类推...意味着最后的第 83 个值将对应于 2012 年。

我的最终目标是查看第二个 ArrayList 中的这些值并找到最大的值,打印它的值和与之对应的年份。问题是程序目前无法知道这些对应的年份值。

允许的假设:第一个对应年份值为 1930。

目前我能够成功打印 ArrayList 中的最大值,这是问题的一半。要实现这一点,只需对 ArrayList 进行排序:System.out.println(depthAdd.get(depthAdd.size() -1));

我缺的是相应的年份。我该怎么做???

这是给你的一些代码:

  public void depthValues() {
ArrayList<Float> rValue = new ArrayList<>();
...
ArrayList<Float> depthAdd = new ArrayList<>();
Iterator<Float> it = rValue.iterator();
final int MAX = 12;

while(it.hasNext()) {
float sum = 0f;
int counter = 1;
while (counter <= MAX && it.hasNext()) {
sum += it.next();
counter++;
}
depthAdd.add(sum);
}


Collections.sort(depthAdd);
System.out.println("Wettest year: //year needs to go here "
+ depthAdd.get(depthAdd.size() -1));




return;

}

最佳答案

您可以复制原始 List(排序前)。然后再次迭代以确定匹配位置。另一种选择是创建一个自定义类来包含年份和值,并创建一个关于降雨量的自定义 Comparator。第一个可能像这样实现

List<Float> depthCopy = new ArrayList<>(depthAdd);
Collections.sort(depthAdd);
Float max = depthAdd.get(depthAdd.size() - 1);
for (int i = 0; i < depthCopy.size(); i++) {
if (depthCopy.get(i).equals(max)) {
System.out.println("Wettest year: " + (1930 + i) + " "
+ depthAdd.get(depthAdd.size() - 1));

}
}

关于java - 如何为 ArrayList 中的相应数据赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173663/

24 4 0