gpt4 book ai didi

java - 如何更改返回到方法的 ArrayList? - java

转载 作者:行者123 更新时间:2023-12-02 11:58:56 26 4
gpt4 key购买 nike

这是代码:

import java.util.Arrays;
import java.util.List;

public class Test {
public static void main(String[]args) {
changeList();

System.out.println(Arrays.toString(example().toArray()));
}

public static void changeList() {
example().set(2, "Hi!");
}

public static List<String> example () {

String str = new String("word1|word2|word3|word4|word5");

return Arrays.asList(str.split("\\|"));
}
}

我希望 ArrayList 是这样的:[word1, word2, Hi!, word4, word5]
但它并没有改变......它打印[word1, word2, word3, word4, word5]

有可能这样改变吗?提前致谢!

最佳答案

问题是 example 每次调用时都会给出一个全新的 List 。当您在 changeList 中创建列表时,它是与您在 main 中创建的列表不同的 List,并且对一个 List 进行了更改 不会影响其他人。

解决此问题的一种方法是:

  1. changeList 方法执行其规定的操作:接收一个 List(而不是从头开始生成一个)并更改该 List
  2. main 方法将 List 传递给 changeList
public static void main(String[]args) {
List<String> list = example();
changeList(list);

System.out.println(Arrays.toString(list.toArray()));
}

public static void changeList(List<String> list) {
list.set(2, "Hi!");
}

关于java - 如何更改返回到方法的 ArrayList? - java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47399361/

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