本文介绍了清除特定的ArrayList,而不是它的所有副本的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我清楚我的ArrayList之一,它可以清除ArrayList的所有副本。

When I clear one of my arraylist, it clears all the copies of that arraylist.

ArrayList<String> testa = new ArrayList<String>();
ArrayList<String> testb = new ArrayList<String>();
testa.add("Dog");
testb = testa;
testa.clear();

现在TESTB也被清除。反正有没有避免这种情况?

Now testb also gets cleared. Is there anyway to avoid this?

推荐答案

由于 TESTB 被refferring到种皮。这是当一个改变b也可以改变。

Since testb is refferring to testa.That's when a changes b also changes.

当你做 TESTB =种皮; 这就像,

+-----+
| testa |--------\
+-----+         \    +----------------+
                 --->| (same list)    |
+-----+         /    |  testa         |
| testb |--------/   +----------------+
+-----+

如果你不希望出现这种情况,创建一个独立的ArrayList

If you don't want that, create a new independent ArrayList.

在通过实际列表新的 构造

Passing the actual list to new constructor,

ArrayList<String> testa = new ArrayList<String>();
testa.add("Dog");
ArrayList<String> testb = new ArrayList<String>(testa);
testa.clear();

的addAll 方法

  ArrayList<String> testa = new ArrayList<String>();
  testa.add("Dog");
  ArrayList<String> testb = new ArrayList<String>();
  testb.addAll(testa);
  testa.clear();

这篇关于清除特定的ArrayList,而不是它的所有副本的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 12:43