Java中具有多个值的LinkedList数组



我正在尝试创建一个数组或ArrayList,它包含3个单独的链表。

假设我有一系列部门(销售、媒体、工作人员(每个元素都是一个名称、头衔、id和支付率的循环链接。

示例:

Sales:
Node 1: Name Title       ID    Payrate
Mary Salesperson 1378 25.46
Node 2: Name Title       ID    Payrate
Mary Salesperson 1364 20.13
Media:
Node 1: Name Title       ID    Payrate
John Designer    563   30.50
Node 2: Name  Title       ID    Payrate
Chris Designer    586   563

我希望能够检索特定链接列表中的节点,如Departments(Sales(.next等。这是我当前的代码:

public class Circle{

public static class CircularLinkedList {
private Node head = null;
private Node tail = null;
private int length;

class Node{
private Node next;
private String deptNameIn;
private String empNameIn;
private String title;
private int id;
private float payrate;

public Node(String deptNameIn, String empNameIn, String title, int id, float payrate) {
this.deptNameIn = deptNameIn;
this.empNameIn = empNameIn;
this.title = title;
this.id = id;
this.payrate = payrate;
}
}
public CircularLinkedList() {
length = 0;
}

public void insertNodeRight(String deptNameIn, String empNameIn, String title, int id, float payrate) {
Node newNode = new Node(deptNameIn, empNameIn, title, id, payrate);

if (head == null) {
head = newNode;
} else {
tail.next = newNode;
}
tail = newNode;
tail.next = head;

length++;

}

public static CircularLinkedList createCircularLinkedList() {
CircularLinkedList cll = new CircularLinkedList();

cll.insertNodeRight("Sales", "Mary", "Sales_person", 568, (float) 12.50);
cll.insertNodeRight("Sales", "Mary", "Sales_person", 589, (float) 25);
cll.insertNodeRight("Sales", "Vallerie", "Manager", 123, (float) 30);

return cll;
}
}

public static void main(String[] args) {
CircularLinkedList cll = CircularLinkedList.createCircularLinkedList();


}

}

另外还有两个旁注,我目前可以从最右边插入,但如何从最左边插入。此外,如何删除节点?我在网上看到的所有内容都显示删除一个只有一个值的节点,但我有多个值。

名称、头衔、id和支付率的循环链接。

此外,如何删除节点?我在网上看到的所有内容都显示删除一个只有一个值的节点,但我有多个值。

不,你没有。您有一个节点对象的循环链表。您的链接列表由节点对象组成,而不是"多个值"。

一旦你能够理解这一点,你就会看到当你在网上搜索"如何用java编写链表"时,你会发现成千上万的博客文章和教程同样适用于这里。

如何在开始处插入新节点

好吧,想想看。在"前面"添加一个新节点后,head需要指向这个新节点,而新节点的next需要指向过去的头。

当然,长度也必须增加。它与insertNodeRight的代码完全相同,只是前后翻转。

删除节点也是同样的原则。想想你的链表的头/尾指针是什么开始的,它们需要变成什么,列表中的下一个/前一个指针是什么,它们需要成为什么。如果你愿意,可以在纸上画出来。

一旦你弄清楚了,只需编写代码,按照你的草图;对于这样的练习,这是微不足道的,insertNodeRight代码说明了方法。

相关内容

  • 没有找到相关文章

最新更新