gpt4 book ai didi

java - 在特定位置增加 arrayList 的元素

转载 作者:行者123 更新时间:2023-11-30 08:08:52 25 4
gpt4 key购买 nike

我发现 arrayList monthList 元素之间的最大差异,然后在此位置之后使用 min_value 递增该元素以重新填充时间表。当前,始终会添加相同的元素。

while 语句之前的分钟列表:

[288, 318, 346, 376, 406, 436, 466, 1006, 1036, 1066, 1096, 1126, 1156]

在几次循环后的 分钟列表:

[288, 318, 346, 376, 406, 436, 466, 496, 496, 496, 496, 1006, 1036, 1066, 1096, 1126, 1156]

正确的结果应该是这样的

[288, 318, 346, 376, 406, 436, 466, 496, 526, 556, 586, 616,..., 1006, 1036, 1066, 1096, 1126, 1156]

代码:

Collections.sort(diffArray);

int element = diffArray.get(diffArray.size() - 1).getElement();
int nextElement = diffArray.get(diffArray.size()-1).getNextElement();

int differance = nextElement - element;

int elementIndex = minuteList.indexOf(element);

while(differance > min_value){
int addTime = minuteList.get(elementIndex) + min_value;
minuteList.add(elementIndex + 1, addTime);

}

最佳答案

您的循环不断将相同的值 ( minuteList.get(elementIndex) + min_value ) 添加到 elementIndex + 1 的相同位置 ( ArrayList ) ,这解释了您看到的多个 496 个元素。

如果您希望在每次迭代中添加新值,则需要 addTime在每次迭代中更改:

int addTime = minuteList.get(elementIndex) + min_value;
while(differance > min_value){
minuteList.add(++elementIndex, addTime);
addTime += min_value;
}

请注意,我还增加了 elementIndex 。否则,所有新元素将添加到同一位置,将先前添加的元素向前推,因此它们将以相反的顺序添加。

您可能想在循环内添加一些实际修改 differance 的代码或min_value 。否则循环将永远不会结束。

关于java - 在特定位置增加 arrayList 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30705990/

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