gpt4 book ai didi

java - 如何在循环时就地编辑 ArrayList 的内容

转载 作者:行者123 更新时间:2023-12-02 12:38:14 25 4
gpt4 key购买 nike

假设我有一个字符串数组列表,其中包含单词“hello”和“world”。我想在每个末尾添加“java”一词。

我尝试在循环时执行此操作,但没有成功。请建议我一种相同的方法。我发现另一种方法是创建一个不同的 ArrayList 并复制内容,但我认为在空间方面效率不高。

import java.util.ArrayList;

public class EditArrayListInLoop {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<String>();

arrayList.add("hello");
arrayList.add("world");

/* This does not work */
/*for(int i = 0;i<arrayList.size();i++)
{
arrayList.get(i) += "java";
}*/

ArrayList<String> arrayList2 = new ArrayList<String>();
for(int i = 0;i<arrayList.size();i++)
{
String test = arrayList.get(i);
test += "java";
arrayList2.add(test);
}
System.out.println(arrayList2);
}
}

最佳答案

test += "java"; 不会更改 arrayList.get(i) 返回的 String 的内容。它创建一个新的StringString 是不可变的,因此没有任何方法可以更改 List 中的 String 对象。您只能用新的 String 对象替换它们。

使用arrayList.set(index,newValue)替换List的第i个元素:

for(int i = 0;i<arrayList.size();i++)
{
arrayList.set(i,arrayList.get(i)+"java");
}

关于java - 如何在循环时就地编辑 ArrayList 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39384039/

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