我在两个单独的包Top和top10中有两个单独的对象ArrayList<String>
。我在活动中将top10的值分配给Top。现在,如果我从Top中删除一个元素,它也会从top10中删除。我不知道为什么会这样?我感到完全傻眼了。我对Java有什么不了解的地方吗?还是Android?
这是我的活动代码:
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指向top10,而不是创建新列表(您的初始化程序实际上已有效,因为您只是将其指向另一个列表。)
你应该做:
ArrayList<String> Top = new ArrayList<String>(ServiceCall.top10);
这将创建一个浅表副本。