广告网站设计,wordpress程序网站,海拉尔做网站的公司,淘宝网站seo服务一、LinkedList 的全面说明
LinkedList底层实现了双向链表和双端队列特点可以添加任意元素(元素可以重复)#xff0c;包括null线程不安全#xff0c;没有实现同步
二、LinkedList 的底层操作机制 三、LinkedList的增删改查案例 public class LinkedListCRUD { public stati…一、LinkedList 的全面说明
LinkedList底层实现了双向链表和双端队列特点可以添加任意元素(元素可以重复)包括null线程不安全没有实现同步
二、LinkedList 的底层操作机制 三、LinkedList的增删改查案例 public class LinkedListCRUD { public static void main(String[] args) { LinkedList linkedList new LinkedList(); linkedList.add(1); linkedList.add(2); linkedList.add(3); System.out.println(“linkedList” linkedList); //演示一个删除结点的 linkedList.remove(); // 这里默认删除的是第一个结点 //linkedList.remove(2); System.out.println(“linkedList” linkedList); //修改某个结点对象 linkedList.set(1, 999); System.out.println(“linkedList” linkedList); //得到某个结点对象 //get(1) 是得到双向链表的第二个对象韩顺平循序渐进学 Java 零基础 第 636页 Object o linkedList.get(1); System.out.println(o);//999 //因为 LinkedList 是 实现了 List 接口, 遍历方式 System.out.println(“LinkeList 遍历迭代器”); Iterator iterator linkedList.iterator(); while (iterator.hasNext()) { Object next iterator.next(); System.out.println(“next” next); } System.out.println(“LinkeList 遍历增强 for”); for (Object o1 : linkedList) { System.out.println(“o1” o1); } System.out.println(“LinkeList 遍历普通 for”); for (int i 0; i linkedList.size(); i) { System.out.println(linkedList.get(i)); } //老韩源码阅读. /* 1. LinkedList linkedList new LinkedList(); public LinkedList() {} 2. 这时 linkeList 的属性 first null last null韩顺平循序渐进学 Java 零基础 3. 执行 添加 public boolean add(E e) { linkLast(e); return true; } 4.将新的结点加入到双向链表的最后 void linkLast(E e) { final Node l last; final Node newNode new Node(l, e, null); last newNode; if (l null) first newNode; else l.next newNode; size; modCount; } / / 老韩读源码 linkedList.remove(); // 这里默认删除的是第一个结点 执行 removeFirst public E remove() { return removeFirst(); }韩顺平循序渐进学 Java 零基础 第 638页执行 public E removeFirst() { final Node f first; if (f null) throw new NoSuchElementException(); return unlinkFirst(f); }执行 unlinkFirst, 将 f 指向的双向链表的第一个结点拿掉 private E unlinkFirst(Node f) { // assert f first f ! null; final E element f.item; final Node next f.next; f.item null; f.next null; // help GC first next; if (next null) last null; else next.prev null; size–; modCount; return element; } */ } }