gpt4 book ai didi

Java Arraylist清除: how clear() works

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

我有一个二维对象列表 mypath List<List<Object>> mypath = new ArrayList<List<Object>>(); 。假设我有以下代码行

  mypath.add(temppath);
System.out.println("mypath: "+mypath.get(mypath.size()-1));
temppath.clear();
System.out.println("mypath: "+mypath.get(mypath.size()-1));

我从第一个打印语句中看到一个对象列表,但从第二个打印语句中看到一个空列表。当我清除临时路径时,我的路径的该元素也会被清除。有办法规避这个问题吗?我可以清除 temppath,而不清除 mypath 的最后一个元素吗?

最佳答案

将 temppath 添加到 mypath 时,您不会创建新对象,而是添加对现有对象的引用。因此,您对该对象所做的一切都会反射(reflect)在引用它的任何地方。

此问题的一个可能的解决方案是创建 temppath 的副本并将其添加到 mypath。

关于Java Arraylist清除: how clear() works,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19578143/

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