package com.zl.jdk.hashmap; public class ExtlinkedList{ //第一个元素 private Node first; //最后一个元素 private Node last; //链表大小 private int size=0; class Node{ //前一个节点 private Node pre; //节点内容 private Object object; //后一个节点 private Node next; } public void add(E e){ Node node = new Node(); if(first == null){ //集合为空 node.object = e; first = node; last = node; }else{ //集合不为空 //获取最后一个node node.object = e; node.pre = last; last.next = node; } last = node; size ++ ; } public void addIndex(E e,int index){ if(index < size){ Node node = new Node(); node.object = e; //获取到原来的位置上的node Node oriNode = getNode(index-1); //原来位置上的上一个节点 Node oriPreNode = oriNode.pre; oriNode.pre = node; oriPreNode.next = node; node.next = oriNode; node.pre = oriPreNode; size++; }else{ add(e); } } public E get(int index){ Node node = getNode(index); return (E)node.object; } private Node getNode(int index){ Node node = null; if(first != null){ node = first; for(int i=0;i list = new ExtlinkedList(); list.add("A"); list.add("E"); list.add("C"); list.addIndex("M",2); for(int i=0; i 总结:
链表的特点就是每个元素都会知道上一个或下一个元素,本文通过双向链表的方式实现了java中的linkedList



