gpt4 book ai didi

java - ArrayList 对象赋值

转载 作者:行者123 更新时间:2023-11-29 05:57:05 24 4
gpt4 key购买 nike

我有两个独立的对象 ArrayList<String>在两个单独的包 Top 和 top10 中。我在 Activity 中将 top10 的值分配给 Top。现在,如果我从 Top 中删除一个元素,它也会从 top10 中删除。我不知道为什么会这样?我觉得完全傻眼了。关于 Java 有什么我不知道的吗?还是安卓?

这是我的 Activity 代码:

ArrayList<String> Top = new ArrayList<String>();          

// ServiceCall is the name of the class where top10 is initialized.

Top = ServiceCall.top10;

System.out.println("top WR: "+ServiceCall.top10);

if(Top.get(0).equals("Please Select")) Top.remove(0);

System.out.println("top WR: "+ServiceCall.top10);

第二个打印出来的语句比之前少了一个元素。

最佳答案

你指向同一个对象。

Top = ServiceCall.top10;

不是创建一个新对象,而是引用另一个对象,因此两个指针的所有更改都将反射(reflect)在同一个对象中。

您必须创建一个新的,将另一个作为参数传递:

List<String> Top = new ArrayList<String>(ServiceCall.top10);

关于java - ArrayList<String> 对象赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655550/

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