1.初始化节点
package linklist;
public class GoodsNode {
public int id;
public String name;
public double price;
public GoodsNode next;
public GoodsNode(int id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "GoodsNode{" +
"id=" + id +
", name='" + name + '\'' +
", price=" + price +
'}';
}
}
2.初始化链表以及基本操作
package linklist;
import com.sun.xml.internal.bind.v2.model.core.ID;
public class LinkList {
// 头结点,并不保存任何数据
private GoodsNode node = new GoodsNode(0, "", 0.0);
/**
* 在链表结尾添加元素
*/
public void add(GoodsNode goodsNode) {
GoodsNode temp = node;
while (true) {
if (temp.next == null) {
break;
}
temp = temp.next;
}
temp.next = goodsNode;
}
/**
* 按照id从小到大添加元素
*/
public void addOrder(GoodsNode goodsNode) {
GoodsNode temp = node;
boolean flag = true;
while (true) {
if (temp == null) {
break;
}
if (temp.next.id > goodsNode.id) {
break;
}
if (temp.next.id == goodsNode.id) {
flag = false;
break;
}
temp = temp.next;
}
if (flag) {
goodsNode.next = temp.next;
temp.next = goodsNode.next;
} else
System.out.println("该元素已存在不可以重复添加");
}
/**
* 按照id删除元素
*/
public void delNode(int id) {
if (node.next == null) {
System.out.println("链表为空");
return;
}
GoodsNode temp = node;
boolean flag = false;
while (true) {
if (temp.next.id == id) {
break;
}
if (temp.next == null) {
flag = true;
break;
}
temp = temp.next;
}
if (flag) {
System.out.println("没有该节点");
} else {
temp.next = temp.next.next;
}
}
/**
* 修改节点数据
*/
public void updateNode(GoodsNode goodsNode) {
boolean flag = false;
if (node.next == null) {
System.out.println("链表为空");
return;
}
GoodsNode temp = node;
while (true) {
if (temp.id == goodsNode.id) {
break;
}
if (temp == null) {
flag = true;
break;
}
temp = temp.next;
}
if (flag) {
System.out.println("链表中没有该元素");
} else {
temp.name = goodsNode.name;
temp.price = goodsNode.price;
}
}
/**
* 遍历链表
*/
public void list() {
GoodsNode temp = node.next;
if (temp == null) {
System.out.println("这是一个空链表");
}
while (true) {
if (temp == null) {
break;
}
System.out.println(temp);
temp = temp.next;
}
}
}
3.简单测试
package linklist;
import java.util.List;
public class ListTest {
public static void main(String[] args) {
LinkList list = new LinkList();
GoodsNode node1 = new GoodsNode(1, "anta", 99);
GoodsNode node2 = new GoodsNode(2, "lining", 99999);
GoodsNode node3 = new GoodsNode(3, "hxek", 66);
GoodsNode node4 = new GoodsNode(4, "peak", 88);
list.list();
// 添加
// list.add(node1);
// list.add(node2);
// list.add(node3);
// list.add(node4);
//
// list.list();
// 按id添加
list.addOrder(node1);
list.addOrder(node4);
list.addOrder(node2);
list.addOrder(node3);
//list.list();
// 删除
list.delNode(1);
//list.list();
// 修改
list.updateNode(new GoodsNode(2, "ln", 9));
list.list();
}
}