博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LinkedList源码(基础代码)
阅读量:6568 次
发布时间:2019-06-24

本文共 2317 字,大约阅读时间需要 7 分钟。

LinkedList是由一个一个节点连接起来的链表

private static class Node
{ E item; Node
next; Node
prev; Node(Node
prev, E element, Node
next) { this.item = element; this.next = next; this.prev = prev; } }

public boolean add(E e) {        linkLast(e);        return true;    }
public void addFirst(E e) {        linkFirst(e);    }    private void linkFirst(E e) {        final Node
f = first; final Node
newNode = new Node<>(null, e, f); first = newNode; if (f == null) last = newNode; else f.prev = newNode; size++; modCount++; } public void addLast(E e) { linkLast(e); } 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++; }

public boolean remove(Object o) {        if (o == null) {            for (Node
x = first; x != null; x = x.next) { if (x.item == null) { unlink(x); return true; } } } else { for (Node
x = first; x != null; x = x.next) { if (o.equals(x.item)) { unlink(x); return true; } } } return false; } public E remove(int index) { checkElementIndex(index); return unlink(node(index)); }

public E set(int index, E element) {        checkElementIndex(index);        Node
x = node(index); E oldVal = x.item; x.item = element; return oldVal; }

public E get(int index) {        checkElementIndex(index);        return node(index).item;    }

其他

// 检索出第一个元素,但不取出    public E peek() {        final Node
f = first; return (f == null) ? null : f.item; } // 检索出第一个元素,同时取出 public E poll() { final Node
f = first; return (f == null) ? null : unlinkFirst(f); }

转载地址:http://ryvjo.baihongyu.com/

你可能感兴趣的文章
linux -- ubuntu桌面版安装xampp
查看>>
Linux下串口编程入门
查看>>
Ewebeditor最新漏洞及漏洞大全
查看>>
Understanding the Bias-Variance Tradeoff
查看>>
(原创)speex与wav格式音频文件的互相转换
查看>>
php.ini
查看>>
查看解决Oracle对象锁住的问题
查看>>
数据库的视图谁用过?为什么工作2年了从未见过需要用到视图的?
查看>>
Oracle中生成uuid的方法
查看>>
Codeforces Round #260 (Div. 1) D. Serega and Fun 分块
查看>>
The system clock has been set back more than 24 hours
查看>>
[数字dp] hdu 3271 SNIBB
查看>>
【LeetCode】221. Maximal Square
查看>>
sqlserver权限体系(下)
查看>>
Bus,Exclusive access,memory attribute
查看>>
PC-老鸟装机
查看>>
关于MySql全文索引
查看>>
Windows和Ubuntu双系统,修复UEFI引导的两种办法
查看>>
Android相关修改教程
查看>>
《Linux Device Drivers》第十一章 核心数据类型——note
查看>>