LinkedList demo 内部类讲说 1. Node节点 2.MyLinkedList 3. LinkedListTest 测试类
1. Node节点
public class Node < T > { private Node < T > pre; private Node < T > next; private T data; public Node ( ) { } public Node getPre ( ) { return pre; } public void setPre ( Node pre) { this . pre = pre; } public Node getNext ( ) { return next; } public void setNext ( Node next) { this . next = next; } public T getData ( ) { return data; } public void setData ( T data) { this . data = data; } public Node ( Node pre, Node next, T data) { this . pre = pre; this . next = next; this . data = data; }
}
2.MyLinkedList
public class MyLinkedList < T > { private Node < T > head; private Node < T > tail; private int size; public MyLinkedList ( ) { } public MyLinkedList ( Node < T > head) { this . head = head; } public void add ( T data) { if ( head == null ) { Node < T > node = new Node < > ( ) ; node. setData ( data) ; head = node; tail = node; } else { Node < T > node = new Node < > ( ) ; node. setData ( data) ; node. setPre ( tail) ; node. setNext ( null ) ; tail. setNext ( node) ; tail = node; } size++ ; } public int size ( ) { return size; } public T get ( int index) { if ( index < 0 || index >= size) throw new IndexOutOfBoundsException ( "Index: " + index + ", Size: " + size) ; Node < T > node = head; for ( int i = 0 ; i < index; i++ ) { node = node. getNext ( ) ; } return ( T ) node. getData ( ) ; }
}
3. LinkedListTest 测试类
public class LinkedListTest { public static void main ( String [ ] args) { MyLinkedList < String > list = new MyLinkedList < > ( ) ; list. add ( "aa" ) ; list. add ( "bb" ) ; list. add ( "cc" ) ; String result = list. get ( 1 ) ; System . out. println ( result) ; }
}