public class ListTest<T> {
Node<T> pointer;
Node<T> tail;
Node<T> head;
public ListTest(){
pointer=null;
tail=null;
head=null;
}
public void add(T t){
if(tail==null&&head==null){
pointer=new Node<T>();
pointer.obj = t;
head=pointer;
tail=pointer;
}else{//说明链表里有数据;
pointer.next=new Node<T>();
pointer=pointer.next;
pointer.obj=t;
tail=pointer;
}
}
public void printNode(){
pointer=head;
if(isEmpty())System.out.println("list is empty!");
while(pointer!=null){
System.out.println(pointer.obj);
pointer=pointer.next;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void remove(T t){
pointer=head;
Node<T> pointer_1=pointer;
while(pointer!=null){
if(pointer.obj.equals(t))pointer_1.next=pointer.next;
pointer_1=pointer;
pointer=pointer.next;
}
}
public void deleteAll(){
if(!isEmpty()){
pointer=null;
head=null;
tail=null;
}
}
public boolean isEmpty(){
boolean b=false;
if(pointer==null&&head==null&&tail==null)b=true;
return b;
}
public static void main(String[] args) {
ListTest<String> ls=new ListTest<String>();
ls.add("aaa");
ls.add("bbb");
ls.add("ccc");
ls.add("ddd");
ls.printNode();
ls.remove("bbb");
ls.printNode();
ls.deleteAll();
ls.printNode();
}
}
class Node<T>{
T obj;
Node<T> next;
public Node(){
next=null;
obj=null;
}
}