2集知识点
-
手写Linklist的常用方法:
add(Object obj)
add(int index,Object obj)
size()
get(int index)
rangCheck(int index)
remove(int index)
node(int index)
演示代码
package com.collection;public class Node { Node previous; //这里没加private是为了方便演示,应该加 Object obj; //这里没加private是为了方便演示,应该加 Node next; //这里没加private是为了方便演示,应该加 public void setPrevious(Node previous){ this.previous = previous; } public Object getPrevious(){ return previous; } public void setObj(Object obj){ this.obj = obj; } public Object getObj(){ return obj; } public void setNext(Node next){ this.next = next; } public Object getNext(){ return next; } }
package com.collection;import java.util.List;public class SxtLinkedList /*implements List*/ { private Node first; private Node last; private int size; public void add(Object obj){ Node n = new Node(); if(first==null){ n.setPrevious(null); n.setObj(obj); n.setNext(null); first = n; last = n; } else { //直接往last节点后增加新的节点 n.setPrevious(last); n.setObj(obj); n.setNext(null); last.setNext(n); last = n; } size++; } public int size(){ return size; } public Object get(int index){ rangeCheck(index); Node temp = node(index); if(temp!=null){ return temp.obj; } return null; } public void rangeCheck(int index){ if(index<0||index>size){ try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } } public void remove(int index){ Node temp = node(index); if(temp!=null){ Node up = temp.previous; Node down = temp.next; up.next = down; down.previous = up; size--; } } public Node node(int index){ Node temp = null; if(first!=null){ temp = first; for(int i=0;i