在分析源码ArrayList.remove()时,偶然发现了一个疑惑的点,就是:源码也是将最后一个对象的引用指向null(源码:elementData[--size] = null; // clear to let GC do its work),而使用 list.set(最大下标,null)同样也是将对象的引用指向null,为什么输出的结果为:remove()方法 对应位置的值会被“删除”,set()方法 下标位置的值依然被保留.输出.这是为什么呢? 首先我们先看一下remove()方法的源码
package test; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class TestList { static final int size = 1000000; public static void main(String[] args) { L
今天在刷算法题时,新建了ArrayList变量,发现ArrayList与null结合起来使用时经常出错. 请查看如下几种例子, 1.new一个ArrayList<>类型的数据, import java.util.ArrayList; public class Test { @SuppressWarnings("unused") public static void main(String[] args) { ArrayList<Integer> al=new A
package sourceCode.ArrayList; import java.util.ArrayList; import java.util.List; public class arrayListTest { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("a"); list.add("b&