实现LinkedList

来源:互联网 发布:周易算卦知乎 编辑:程序博客网 时间:2024/05/22 06:23
package Oct18.MyCollection;public class MyLinkedList {/** * 1...Node类里定义Node类型成员 * */public class Node {private Node privious;private Object obj;private Node next;public Node(){}public Node(Node privious, Object obj, Node next){            /**             * 2...super的在这里的用法             */super();this.privious = privious;this.obj = obj;this.next = next;}public void setPrivious(Node privious){this.privious = privious;}public void setObj(Object obj){this.obj = obj;}public void setNext(Node next){this.next = next;}public Node getPrivious(){return privious;}public Object getObj(){return obj;}public Node getNext(){return next;}}private Node first;private Node last;private int size;public int size(){return size;}public void add(Object obj){Node n = new Node();if(first == null){n.setPrivious(null);n.setObj(obj);n.setNext(null);first = n;last = n;}else{n.setPrivious(last);n.setObj(obj);n.setNext(null);last.setNext(n);last = n;}//注意size要加1size++;}public void add(int index,Object obj){Node n = new Node();rangeCheck(index);if(first==null){n.setPrivious(null);n.setObj(obj);n.setNext(null);first = n;last = n;}else{Node temp = first;for(int i=0;i<index;i++){temp = temp.next;}/** * 5...........忽略index==0时的状态会造成temp。getPrivious()==null,造成错误 */if(index==0){n.setPrivious(null);n.setObj(obj);n.setNext(first);temp.setPrivious(n);first = n;}else{n.setObj(obj);Node up = temp.getPrivious();up.setNext(n);n.setPrivious(up);n.setNext(temp);temp.setPrivious(n);}}size++;}private void rangeCheck(int index){if(index<0||index>=size){try {throw new Exception();} catch (Exception e) {e.printStackTrace();}}}public Object get(int index){rangeCheck(index);Node temp = null;if(first==null)return null;elsetemp = first;for(int i=0;i<index;i++){temp = temp.next;}return temp.obj;}public static void main(String[] args) {/** * 3...static的作用 * 4....使用类(类型)时要先生成一个对象 */MyLinkedList list = new MyLinkedList();list.add("111");list.add("222");list.add("333");list.add("444");list.add(0,"000");System.out.println(list.size());System.out.println(list.get(0));}}


原创粉丝点击