目录 示例代码 底层代码 第1步(初始化集合) 第2步(往集合中添加一个元素) 第3步(往集合中添加第二个元素) 第4步(往集合中添加第三个元素) LinkedList添加元素流程示意图 第5步(删除集合中第一个元素) 第6步(根据索引来删除集合中的元素) 第7步(根据对象内容来删除集合中的元素) 第8步(根据索引位置往集合中添加元素) 总结: LinkedList继承自List,具备有序性 LinkedList继承自Deque,具备链表关联性 LinkedList集合进行增删改查操作底层实际是…
1 package cn.itcast.p2.linkedlist.demo; 2 3 import java.util.Iterator; 4 import java.util.LinkedList; 5 6 public class LinkeListDemo { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 LinkedList link = new LinkedLi…
1 package cn.itcast.p2.linkedlist.test; 2 3 import java.util.LinkedList; 4 5 /* 6 * 请使用LinkedList来模拟一个堆栈或者队列数据结构. 7 * 8 * 堆栈:先进后出First In Last Out FILO 9 * 10 * 队列:先进先出 First In First Out FIFO 11 * 12 * 我们应该描述这样一个容器,给使用提供一个容器对象完成这两种结构中的一种. 13 */ 14 1…
Java集合框架 LinkedList 序列分先进先出FIFO,先进后出FILO FIFO在Java中又叫Queue 队列 FILO在Java中又叫Stack 栈 示例 1 : LinkedList 与 List接口 与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法. 示例 2 : 双向链表 - Deque 除了实现了List接口外,LinkedList还实现了双向链表结构Deque,可以很方便的在头尾插入删除数据 什么是链表…
Unit04: 集合框架 . 集合操作 -- 线性表 操作集合元素相关方法 package day04; import java.util.ArrayList; import java.util.Collection; import day02.Point; /** * 操作集合元素相关方法 * @author adminitartor * */ public class Collection_Remove { public static void main(String[] args) { C…
1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.LinkedHashSet; 6 /* 7 * LinkedHashSet集合有序且唯一 8 * 9 */ 10 public class LinkedHashSetDemo { 11 12 public static void main(String[] args)…
java.util.LinkedList 本文的主要目录结构: 一.LinkedList的特点及与ArrayList的比较 二.LinkedList的内部实现 三.LinkedList添加元素 四.LinkedList查找元素 五.LinkedList删除元素 六.LinkedList修改元素 一.LinkedList的特点及与ArrayList的比较 对比上一篇的ArrayList介绍[传送门:Java8集合框架——ArrayList源码分析],LinkedList因内部实现不同,其元素的内部…
上一篇讲了ArrayList,它有一个"孪生兄弟"--LinkedList,这两个集合类总是经常会被拿来比较,今天就分析一下LinkedList,然后总结一下这俩集合类的不同 首先看看其成员变量 transient int size = 0;//所含元素数量 transient Node<E> first;//链表的首项 transient Node<E> last;//链表的尾项 ArrayList是基于数组的,而LinkedList是用链表来实现的,链表不需…
1 package cn.itcast.p4.hashset.demo; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 /* 6 * 可自定义哈希算法 7 * 存"ab" 8 * function(element){ 9 * 97+98=195 10 * return 195%10;//5 11 * } 12 * 哈希表确定元素是否相同 13 * 1,判断的是两个元素的哈希值是否相同. 14 * 如果相同,在判…
List 集合源码剖析 ✅ ArrayList 底层是基于数组,(数组在内存中分配连续的内存空间)是对数组的升级,长度是动态的. 数组默认长度是10,当添加数据超越当前数组长度时,就会进行扩容,扩容长度是之前的1.5倍,要对之前的数组对象进行复制,所以只有每次扩容时相对性能开销大一些. 源码(jdk 1.8): 1. 添加元素(非指定位置) // 1. 添加元素 public boolean add(E e) { ensureCapacityInternal(size + 1); // 每次添加…