java进行list1.addall之后,list2是保留还是清空了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java进行list1.addall之后,list2是保留还是清空了相关的知识,希望对你有一定的参考价值。
参考技术A 会保留,因为就像 1+2=3;但1不会因为与2相加之后就消失。 参考技术B 保留了
写了个测试代码
import java.util.ArrayList;
import java.util.List;
public class Test
public static void main(String[] args)
List<Integer> a = new ArrayList<Integer>();
for(int i=0;i<10;i++)
a.add(i);
System.out.println(a);
List<Integer> b = new ArrayList<Integer>();
b.addAll(a);
System.out.println(b);
System.out.println(a);本回答被提问者采纳
java进行list1.addall(list2)之后,list2是保留还是清空了?
addAll只是将list2中的数据复制了一份到list1中,list2是不会受到影响的,如果你后续的代码中没有继续使用到list2,那么jvm会在适当的时候回收掉list2所占用的内存,只要有任何一处使用到了list2的引用,GC都不会回收list2的那部分内存 参考技术A 如果之后的程序中没有指向list2的变量,list2就被清空了。 参考技术B 保留了写了个测试代码
import java.util.ArrayList;
import java.util.List;
public class Test
public static void main(String[] args)
List<Integer> a = new ArrayList<Integer>();
for(int i=0;i<10;i++)
a.add(i);
System.out.println(a);
List<Integer> b = new ArrayList<Integer>();
b.addAll(a);
System.out.println(b);
System.out.println(a);
输出为
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]本回答被提问者采纳 参考技术C 保留 并不会对list2造成影响
以上是关于java进行list1.addall之后,list2是保留还是清空了的主要内容,如果未能解决你的问题,请参考以下文章