简单模拟LinkedList

来源:互联网 发布:淘宝色差问题怎么回复 编辑:程序博客网 时间:2024/06/06 02:36

底层结构为链表;

[java] view plaincopy
  1. import java.util.Iterator;  
  2. //LinkedLink其实是双向链表  
  3. public class MyLinkedList<E> implements Iterable<E>{  
  4.     int size;  
  5.     private Node head=null;//头部节点  
  6.     private Node tail=null;//尾部节点  
  7.     public void add(E e){  
  8.         Node node=new Node(e,null);  
  9.         if(head==null){  
  10.             head=node;  
  11.             tail=node;  
  12.         }else{  
  13.             tail.setNext(node);  
  14.             tail=node;  
  15.         }  
  16.         size++;  
  17.     }  
  18.     public int getSize(){  
  19.         return size;  
  20.     }  
  21.     public Iterator<E> iterator() {  
  22.         return new Iterator<E>(){  
  23.             Node temp=head;  
  24.             public boolean hasNext() {  
  25.                 return temp!=null;  
  26.             }  
  27.   
  28.             public E next() {  
  29.                 E data=temp.data;  
  30.                 temp=temp.next;  
  31.                 return data;  
  32.             }  
  33.   
  34.             public void remove() {  
  35.                   
  36.             }};  
  37.     }  
  38.     class Node{//内部类,节点  
  39.         private E data;  
  40.         private Node next;  
  41.         public Node(E data, Node next) {  
  42.             super();  
  43.             this.data = data;  
  44.             this.next = next;  
  45.         }  
  46.         public E getData() {  
  47.             return data;  
  48.         }  
  49.         public void setData(E data) {  
  50.             this.data = data;  
  51.         }  
  52.         public Node getNext() {  
  53.             return next;  
  54.         }  
  55.         public void setNext(Node next) {  
  56.             this.next = next;  
  57.         }  
  58.     }  
  59. }  

[java] view plaincopy
  1. public class Test2 {  
  2. public static void main(String[] args) {  
  3.     MyLinkedList<String> mylink=new MyLinkedList<String>();  
  4.     mylink.add("a");  
  5.     mylink.add("v");  
  6.     mylink.add("vw");  
  7.     System.out.println("元素个数:"+mylink.getSize());  
  8.     for(String data:mylink){  
  9.         System.out.println(data);  
  10.     }  
  11. }  
  12. /** 
  13.     元素个数:3 
  14.     a 
  15.     v 
  16.     vw 
  17.  */  
  18. }  
原创粉丝点击