/**
* 功能:存储多个学生的分数
* 不变的是什么?
*1.运算结果没有变
* 2.执行的功能代码没有变
*
* 变化的什么?
* 1.底层的结构变了
* ArrayList:数组
* LinkedList:双向链表
* 2.具体的执行过程变化了 list.add(2,99)
* ArrayList:大量的后移元素
* LinkedList:不需要大量的移动元素,修改节点的指向即可
*
* 到底是使用ArrayList还是LinkedList
* 根据使用场合而定
* 大量的根据索引查询的操作,大量的遍历操作(按照索引0--n-1逐个查询一般),建议使用ArrayList
* 如果存在较多的添加、删除操作,建议使用LinkedList
* 建议 * List<Integer> list = new ArrayList<Integer>();
* 不建议 * ArrayList<Integer> list = new ArrayList<Integer>();
*/
public class TestLinkedList {
public static void main(String[] args) {
//1.创建一个ArrayList集合对象
//ArrayList<Integer> list = new ArrayList<Integer>();
//LinkedList<Integer> list = new LinkedList<Integer>();
//List<Integer> list = new ArrayList<Integer>();
List<Integer> list = new LinkedList<Integer>();
//2.对集合中的元素进行操作
//2.1 添加
list.add(80);//向末尾添加元素
list.add(80);
list.add(78);//自动装箱
list.add(new Integer(78));
//list.add("Java");
// list.addFirst(12);
// list.addLast(12);
list.add(0,12);
list.add(12);
list.add(100);
list.add(56);
list.add(80);
list.add(2,99);//向指定的位置添加元素
//2.2 查询指定的元素
System.out.println(list.size());//元素的个数
System.out.println(list);
list.remove(1);
System.out.println(list);
System.out.println(list.isEmpty());
}
}