- ArrayList底层是基于数组实现的:根据索引定位元素快,增删需要做元素的移位操作
- 第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组
每添加一个元素,size就会向后移,指向下一个要添加元素的位置
当size指向索引10的位置时候,就会自动1.5倍扩容,扩容到15,等
底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首尾操作的特有API。
特有功能 代码演示//栈 LinkedListstack = new LinkedList<>(); //入栈,压栈 stack.addFirst("第一颗子弹"); stack.addFirst("第二颗子弹"); stack.addFirst("第三颗子弹"); stack.addFirst("第四颗子弹"); System.out.println(stack);//[第四颗子弹,第三颗子弹,第二颗子弹,第一颗子弹,] //出栈,弹栈 stack.removeFirst(); stack.removeFirst(); stack.removeFirst(); System.out.println(stack);//[第一颗子弹] //队列 LinkedList queue = new LinkedList<>(); //入队 queue.addLast("1号"); queue.addLast("2号"); queue.addLast("3号"); queue.addLast("4号"); System.out.println(queue);//[1号,2号,3号,4号] //出队 queue.removeFirst(); queue.removeFirst(); queue.removeFirst(); System.out.println(queue);//[4号]
栈
LinkedListstack = new LinkedList<>(); // 入栈 压栈 (push) stack.push("第1颗子弹"); stack.push("第2颗子弹"); stack.push("第3颗子弹"); stack.push("第4颗子弹"); System.out.println(stack); // 出栈 弹栈 pop System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack); }



