【问题标题】:Java diffrence between list to list copy列表到列表复制之间的Java区别
【发布时间】:2021-06-08 16:06:46
【问题描述】:

将列表复制到列表时有什么区别以及更有效的方法 例如我有:

List<String> firstList= new ArrayList<String>();
List<String> secondList = new ArrayList<String>();

secondList.add("A");
secondList.add("B");
secondList.add("C");

firstList.add("A_1");
firstList.add("A_2");
firstList.add("A_3");
firstList.add("B_1");
firstList.add("B_2");
firstList.add("B_3");
firstList.add("C_1");
firstList.add("C_2");
firstList.add("C_3");

我现在做的是:

secondList = firstList

它工作正常,但我不确定它的正确方法,因为你可以看到我用旧数据替换新数据。

【问题讨论】:

  • secondList = firstList 表示两个变量都指向同一个对象。如果修改firstListsecondList 也会被修改。那是你真正想要的吗?
  • "im not sure" -- 只要你不知道自己需要什么或想要什么,没有人能给出好的建议.
  • 我想要从 firstList 获取数据的最快和最安全的方法,因为 firstList 一直在变化,请检查这个问题,因为有完整的流程检查 exec 方法stackoverflow.com/questions/67884970/…
  • 在 Java 中复制一个列表是covered many times。发帖前先搜索。

标签: java list arraylist copy


【解决方案1】:

这取决于你想要达到什么目标:

  • 如果你想参考列表,你可以照做:

      List<String> thirdList = firstList;
      firstList.set(0, "Z"); // Check this out
    
      System.out.println(firstList); // [Z, A_2, A_3, B_1, B_2, B_3, C_1, C_2, C_3]
      System.out.println(thirdList); // [Z, A_2, A_3, B_1, B_2, B_3, C_1, C_2, C_3]
    
  • 如果你想复制列表内容,你可以这样做:

      List<String> thirdList = new ArrayList<>(firstList);
      firstList.set(0, "Z"); // Check this out
    
      System.out.println(firstList); // [Z, A_2, A_3, B_1, B_2, B_3, C_1, C_2, C_3]
      System.out.println(thirdList); // [A_1, A_2, A_3, B_1, B_2, B_3, C_1, C_2, C_3]
    

【讨论】:

    猜你喜欢
    • 2011-09-06
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2018-10-29
    • 2015-08-11
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多