本次内容:linkedlist()
此次是承接上次arraylist(),自己实现linkedlist()(内容较少)
1 package list; 2 /** 3 * 自定义linkedlist类 4 * @author acer 5 * 6 */ 7 public class mylinkedlist { 8 private Node first; 9 private Node last; 10 private int size; 11 public void add(Object obj) 12 { 13 Node n=new Node(); 14 if(first==null) 15 { 16 n.setPrevious(null); 17 n.setObj(obj); 18 n.setNext(null); 19 first=n; 20 last=n; 21 } 22 else 23 { 24 n.setPrevious(last); 25 n.setObj(obj); 26 n.setNext(null); 27 last.setNext(n); 28 last=n; 29 } 30 size++; 31 } 32 public void add(int index,Object obj) 33 { 34 Node temp=null; 35 Node newNode=new Node(); 36 newNode.setObj(obj); 37 if(first!=null) 38 { 39 temp=first; 40 for(int i=0;i<index;i++) 41 { 42 temp=temp.getNext(); 43 } 44 } 45 newNode.setPrevious(temp.getPrevious()); 46 temp.getPrevious().setNext(newNode); 47 newNode.setNext(temp); 48 temp.setPrevious(newNode); 49 size++; 50 51 } 52 public Object get(int index) 53 { 54 rangeCheck(index); 55 Node temp=null; 56 if(first!=null) 57 { 58 temp=first; 59 for(int i=0;i<index;i++) 60 { 61 temp=temp.getNext(); 62 } 63 } 64 return temp.getObj(); 65 } 66 public void removefirst() 67 { 68 Node temp=null; 69 temp=first; 70 temp=temp.getNext(); 71 temp.setPrevious(null); 72 first.setNext(null); 73 first=temp; 74 } 75 public void remove(int index) 76 { 77 rangeCheck(index); 78 Node temp=null; 79 if(first!=null) 80 { 81 temp=first; 82 for(int i=0;i<index;i++) 83 { 84 temp=temp.getNext(); 85 } 86 } 87 if(temp!=null) 88 { 89 Node pre=temp.getPrevious(); 90 Node ne=temp.getNext(); 91 pre.setNext(ne); 92 ne.setPrevious(pre); 93 size--; 94 } 95 96 } 97 public void rangeCheck(int index) 98 { 99 if(index<0||index>=size) 100 { 101 try { 102 throw new Exception(); 103 } catch (Exception e) { 104 e.printStackTrace(); 105 } 106 } 107 } 108 public int size() 109 { 110 return size; 111 } 112 public static void main(String[] args) 113 { 114 mylinkedlist list=new mylinkedlist(); 115 list.add("aaa"); 116 list.add("bbb"); 117 list.add("ccc"); 118 list.add("ddd"); 119 System.out.println(list.size()); 120 System.out.println(list.get(1)); 121 list.removefirst(); 122 System.out.println(list.get(0)); 123 } 124 } 125 126 127 class Node 128 { 129 private Node previous; 130 private Object obj; 131 private Node next; 132 public Node() 133 { 134 } 135 public Node(Node previous, Object obj, Node next) { 136 super(); 137 this.previous = previous; 138 this.obj = obj; 139 this.next = next; 140 } 141 public Node getPrevious() { 142 return previous; 143 } 144 public void setPrevious(Node previous) { 145 this.previous = previous; 146 } 147 public Object getObj() { 148 return obj; 149 } 150 public void setObj(Object obj) { 151 this.obj = obj; 152 } 153 public Node getNext() { 154 return next; 155 } 156 public void setNext(Node next) { 157 this.next = next; 158 } 159 }
运行结果:
4
bbb
bbb