在编程中List函数用的还是比较多的,它的功能也很全面,以下是我对其底层逻辑的理解。
语法:
List<类型> list = new ArrayList<>();
常用函数:
add();//添加元素
remove();//删除某个位置的元素
可选择类型:
其中<>中的类型可以选择Character,String,Integer,甚至是数组,几乎所有变量都能选择储存。
底层逻辑:
原理 :构成 List 的底层逻辑是动态数组,即每个数据节点由数据,左,右结点构成。
其实本质上其储存数据的部分是一个指针 (以下是实例证明):
证明:
代码1:
import java.util.*;
public class Narnat {
public static void main(String[] args) {
List<int []> s = new ArrayList<>();
int a[] = {1, 2, 4};
s1.add(a);
System.out.println(a);
System.out.print(s);
}
}
输出 1:
即:s 中结点的数据部分指向的是数组 a 所对应的地址。
代码2:
import java.util.*;
public class Narnat {
public static void main(String[] args) {
List<List<Integer>> s = new ArrayList<>();
List<Integer> s1 = new ArrayList<>();
for(int i = 1; i <= 5; i ++)
s1.add(i);
s.add(s1);
System.out.println(s1);
System.out.println(s);
s1.remove(s1.size() - 1);
System.out.print(s);
}
}
输出2:
即:s 中结点的数据部分指向 ,s1 所在空间,所以 s1 变化,s也会跟着变化。