gpt4 book ai didi

java - 检查并添加 arraylist 中的浮点值

转载 作者:行者123 更新时间:2023-12-02 03:44:19 26 4
gpt4 key购买 nike

嗨,我是java新手,我正在尝试理解数组列表。我正在使用 Arraylist theListdummyValues。我从 theList 读取值并更新 dummyValues 中的浮点值。我的代码片段如下`

     public static void generateValues(ArrayList<Float> theList) {

for (int j = 0; j < theList.size(); j++) {
if (dummyValues.size()==0)
dummyValues.add(j, theList.get(j));

else
dummyValues.set(j, theList.get(j));
}
}

我尝试在第一个条件下将值添加到 ArrayList dummyValues 中,在第二个条件下,如果大小 dummyValues 大于 0,则只需更新 dummyValues 的值>虚拟值。我考虑过这种方法以避免重复副本。

但是,当我执行它时,出现以下错误:

java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1

这里发生错误dummyValues.set(j, theList.get(j));

我知道这是一个微不足道的概念,感谢任何形式的帮助

最佳答案

我建议进行此改进。将您的方法更改为:

public static void generateValues(ArrayList<Float> theList) {

for (int j = 0; j < theList.size(); j++) {
if (dummyValues.size()==0){
dummyValues.add(j, theList.get(j));
}
else if(dummyValues.size()==theList.size()){
dummyValues.set(j, theList.get(j));
}
else{
dummyValues.add(theList.get(j));
}
}

检查两个列表的大小,如果列表大小不同,它将向虚拟列表添加新元素,而不是尝试在不存在的索引上设置元素。在这种情况下,列表可能不会具有相同的顺序。

编辑:这不是正确的答案!抱歉,我写得比思考得快。 :(仅当 theList.size() > dummyValues.size() 时才有效。我会尽力改进我的答案;)

EDIT2:你好。做了一些工作,我回来了。我修改了你的方法,并为你提供了第二个我认为更好的解决方案。检查一下:

public static void generateValues(List<Float> theList) {

if (dummyValues.size() >= theList.size()) {
for (float value : theList) {
dummyValues.set(theList.indexOf(value), value);
}
}
else {
for (float value : theList) {
dummyValues.add(dummyValues.size(), value);
}
}
}

尝试一下,让我知道它是否适合您的需求。

关于java - 检查并添加 arraylist 中的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477961/

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