list通过clear清空进行,会将之前通过“add”或“=”关联的对象同时进行变更。[问题解决]

List<String> A= new ArrayList<>();
A.add("1");
List<String> B = new ArrayList<>();
List<List<String>> C = new ArrayList<>();
B = A;
C.addAll(A);
A.clear();

A清空后发现B清空了;C中指引A的元素list也清空
此时B对象相当与A对象的引用,而并不是将A对象的值单纯的传递给B对象。即:B对象的操作将直接改变A对象。

如B.add("3");结果A中也包含了“3”;

2.单纯的把值赋予对方方式多种。如下:

方式一:

List B = new ArrayList<> (A);

方式二:

List B = A.clone();

方式三:

List B = new ArrayList<String>();
B.addAll(A);

方式四:

for(String s: A)
 B.add(s);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Java中自定义的类来实现清空集合中的数据,具体的实现方法如下: ```java public class MyArrayList<T> { private T[] elements; private int size; public MyArrayList() { elements = (T[]) new Object[10]; size = 0; } public void add(T element) { if (size == elements.length) { T[] newElements = (T[]) new Object[elements.length * 2]; System.arraycopy(elements, 0, newElements, 0, size); elements = newElements; } elements[size++] = element; } public void clear() { for (int i = 0; i < size; i++) { elements[i] = null; } size = 0; } public T get(int index) { if (index < 0 || index >= size) { throw new IndexOutOfBoundsException(); } return elements[index]; } public int size() { return size; } } ``` 在上面的例子中,我们添加了一个clear()方法,用于清空集合中的数据。在方法中,我们使用一个循环将数组中的每个元素赋值为null,并将size设置为0。 我们可以通过以下代码来测试MyArrayList类的clear()方法: ```java public class Example { public static void main(String[] args) { MyArrayList<Integer> list = new MyArrayList<Integer>(); list.add(1); // 添加数据1 list.add(2); // 添加数据2 list.add(3); // 添加数据3 System.out.println("添加前,数组大小:" + list.size()); list.clear(); // 清空集合中的数据 System.out.println("清空后,数组大小:" + list.size()); } } ``` 输出结果为: ``` 添加前,数组大小:3 清空后,数组大小:0 ``` 在上面的例子中,我们首先创建了一个MyArrayList对象,并使用add()方法向其中添加了三个数据。最后,使用clear()方法清空集合中的数据,并输出了数组的大小。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值