LinkerList类
public class LinkerList<E> {
private final Node<E> head = new Node<>(null);
private int size = 0 ;
public void add(E element,int index){
if(index<0|| index>size)
throw new IndexOutOfBoundsException("插入位置非法,合适的插入位置为 0 ~ "+size );
Node<E> node =new Node<>(element);
Node<E> prev=head;
for(int i=0;i<index;i++)
prev=prev.next;
node.next=prev.next;
prev.next=node;
size++;
}
private static class Node< E>{
private E element;
private Node <E> next;
public Node (E e){
this.element=e;
}
}
@Override
public String toString(){
StringBuilder builder=new StringBuilder();
Node<E> node =head.next;
while (node != null) {
builder.append(node.element).append(" ");
node =node.next;
}
return builder.toString();
}
public E remove(int index){
if(index<0|| index>size-1){
throw new IndexOutOfBoundsException("删除位置非法,合法的删除位置为: 0 ~ "+(size-1));
}
Node<E> prev= head;
for(int i=0;i<index;i++)
prev=prev.next;
E e=prev.next.element;
prev.next=prev.next.next;
return e;
}
}
Main
import java.util.Arrays;
public class Main{
public static void main(String[] args){
LinkerList<String> list= new LinkerList<>();
list.add("aaa",0);
list.add("bbb",0);
list.add("ccc",0);
list.remove(2);
System.out.println(list.toString());
}
}