关于java的链表思想 先可看以下例子 先建立一个实例(Student.java) package com.yz.mylink; public class Student { private Integer id; private String name; private Integer age; private String classes; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getClasses() { return classes; } public void setClasses(String classes) { this.classes = classes; } } 建立节点(Node.java) package com.yz.mylink; public class Node { Object data; Node next; public Node(Object data){ this.data=data; next=null; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } } 建立调用方法 (Link.java) package com.yz.mylink; public class Link { Node head; public Link(){ head=new Node(null); } /* * 追加 */ public void addNode(Object data){ Node p=head; while(true){ if(p.getNext()!=null){ p=p.getNext(); }else{ p.setNext(new Node(data)); break; } } } public void addNode(Integer id,Object data){ Node p=head; while(true){ if(p.getNext()!=null){ p=p.getNext(); Student stu=(Student) p.getData(); if(stu.getId()==id){ Node mynode=new Node(data); mynode.setNext(p.getNext()); p.setNext(mynode); break; } }else{ break; } } } /* * 删除指定元素 */ public void delNodestu(Integer id){ Node p=head; while(true){ if(p.getNext()!=null){ Node pp=p.getNext(); pp=p.getNext(); Student stu=(Student) pp.getData(); if(stu.getId()==id){ p.setNext(p.getNext().getNext()); break; } }else{ break; } } } public void delNode(){ Node p=head; while(true){ Node pp=p.getNext(); if(pp.getNext()==null){ p.setNext(null); break; } p=p.getNext(); } } /* * 查找 */ public Integer findNodestu(Integer id){ Node p=head; int n=0; while(true){ if(p.getNext()!=null){ p=p.getNext(); Student stu=(Student) p.getData(); if(stu.getId()==id){ return ++n; }else{ n++; } }else{ break; } } return 0; } /* * 遍历所有 */ public void display(){ Node p=head; while(true){ if(p.getNext()!=null){ System.out.println(p); p=p.getNext(); }else{ break; } } } /* * 遍历一个student类 */ public void displaystu(){ Node p=head; while(true){ if(p.getNext()!=null){ p=p.getNext(); Student stu=(Student) p.getData(); System.out.println("学号:"+stu.getId()+"姓名:"+stu.getName()+"年龄:"+stu.getAge()+"班维"+stu.getClasses()); }else{ break; } } } } 测试(Man.java) package com.yz.mylink; public class Man { public static void test1(){ Link link=new Link(); Student stu=new Student(); stu.setId(101); stu.setName("小明"); stu.setAge(18); stu.setClasses("计科一班"); Student stu2=new Student(); stu2.setId(102); stu2.setName("小星"); stu2.setAge(18); stu2.setClasses("计科二班"); Student stu3=new Student(); stu3.setId(103); stu3.setName("小中"); stu3.setAge(21); stu3.setClasses("计科三班"); link.addNode(stu); link.addNode(stu2); link.addNode(101,stu3); link.displaystu(); System.out.println("***********************************"); link.delNodestu(101); link.displaystu(); System.out.println("*************************************"); link.delNode(); link.displaystu(); System.out.println(link.findNodestu(103)); } public static void main(String[] args){ test1(); } }