java - l单向链表的增删查改的封装
package com.an;
public class SingleLinkeListDemo {
public static void main(String[] args) {
SingleLinkeList singleLinkeList = new SingleLinkeList();
//测试数据
for(int i=0;i<8;i++){
Node node = new Node(i,"https://blog.****.net/qq_42016973------"+i,"An"+i);
singleLinkeList.add(node);
}
System.out.println("----------增加----------------------------");
//增加之后的数据
singleLinkeList.list();
System.out.println("---------------修改------------------------");
Node node = new Node(2,"https://blog.****.net/qq_42016973","https://blog.****.net/qq_42016973");
singleLinkeList.update(node);
singleLinkeList.list();
System.out.println("-----------!!!!!-删除--------------------------");
singleLinkeList.del(2);
singleLinkeList.list();
}
}
class SingleLinkeList{
//headNode头节点
private Node headNode=new Node(0,"","");
public void add(Node heroNode){
Node temp=headNode;
while(true){
if(temp.getNextNode()==null){
break;
}
temp=temp.getNextNode();
}
temp.setNextNode(heroNode);
}
public void del(int no){
Node temp=headNode;
boolean flag=false;
System.out.println(temp.getNextNode().getNo());
while(true){
if(temp.getNextNode()==null){
break;
}
if(temp.getNextNode().getNo()==no){
flag=true;
break;
}
temp=temp.getNextNode();
}
if(flag){
temp.setNextNode(temp.getNextNode().getNextNode());
}else{
System.out.println("没有");
}
}
public void update(Node heroNode){
Node temp = headNode;
boolean flag=false;
while(true){
if(temp.getNo()==heroNode.getNo()){
System.out.println(temp.getNo());
flag=true;
break;
}
temp=temp.getNextNode();
}
if(flag){
temp.setName(heroNode.getName());
temp.setNickName(heroNode.getNickName());
}else{
System.out.println("没有此数据,更改不了");
}
}
public void list(){
Node temp=headNode;
while(true){
if(temp==null){
break;
}
System.out.println(temp);
temp=temp.getNextNode();
}
}
}
class Node{
private int no;
private String name;
private String nickName;
private Node nextNode;
public Node(int no,String name,String nickNam){
this.no=no;
this.name=name;
this.nickName=nickNam;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Node getNextNode() {
return nextNode;
}
public void setNextNode(Node nextNode) {
this.nextNode = nextNode;
}
@Override
public String toString() {
return "Node [no=" + no + ", name=" + name + ", nickName=" + nickName + "]";
}
}
结果图