当前位置: 首页 > 知识库问答 >
问题:

Java中具有多个值的LinkedList数组

司马晋
2023-03-14

我试图创建一个数组或ArrayList,它包含三个独立的链表。

假设我有一个部门数组(销售、媒体、船员),每个元素都是一个循环链接的名称、标题、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

我希望能够检索到特定链表中的节点,如部门(销售)。下一步,等等。这是我当前的代码:

java prettyprint-override">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();
        
        
    }
    
}

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

谢谢!

共有1个答案

洪星文
2023-03-14

姓名、职称、id和薪资的循环链接。

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

不,你不知道。您有一个节点对象的循环链表。您的链表由节点对象组成--而不是“多个值”。

一旦你能把你的头围绕着它,你会看到你在网上搜索“如何在Java写一个链表”时找到的成千上万的博客文章和教程都同样适用于这里。

好吧,想想看。在添加新节点“at the front”之后,head需要指向这个新节点,而新节点的next需要指向以前的head。

当然,长度也必须增加。它与insertnoderight的代码完全相同,只需翻转head/tail和next/prev。

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

一旦你搞清楚了,只需编写代码来完成你的草图;对于类似这样的练习,它很简单,您的InsertNoderight代码说明了方法。

 类似资料:
  • 问题内容: 我想在Java中实现具有多个值的哈希表,即 并且将返回2倍的值。 我怎样才能做到这一点? 问题答案: 您可以改用Multimap。它在列表中为一个键保留多个值。在commons- collection 和Guava中有实现。 这类似于使用值是列表的Hashmap,但是不必显式创建列表。 自己动手做的同一示例如下所示: 请注意,您可以将Multimap用作构建器,并对其调用asMap以返

  • 问题内容: 我有具有重复值的numpy 2d数组。 我正在搜索这样的数组。 输入是列表,其编号类似于列0的值。我想要的最终结果是任何形式的结果行,例如数组,列表或元组 我的代码工作正常,但似乎不是pythonic。有没有更好的多值搜索策略? 就像只进行一次查找即可获取所有值的地方。 我的真实数组很大 问题答案: 方法1: 使用- 方法2: 使用-

  • 问题内容: 基本上,我所做的是为州写一个枚举,我不仅希望能够像州一样访问它们,而且还希望访问它们的缩写以及它们是否是原始殖民地。 这似乎按我预期的那样工作。我可以 对于涉及枚举的特定情况,这是执行此操作的最佳方法,还是设置和格式化此枚举的更好方法?预先感谢所有人! 问题答案: 首先,枚举方法不应大写。它们是与其他方法一样的方法,具有相同的命名约定。 其次,您所做的并不是建立枚举的最佳方法。不要为每

  • 这里的问题是什么?。我正在尝试实现图数据结构,使用邻接列表,通过使用来自util包的集合。这里 包含一些整数的LinkedList数组。LinkedList的每个元素都包含另一个类型为:node的LinkedList。 但在编译过程中,它表示不兼容类型。如何解决这个问题?

  • 我试图使用Laravel构建一个(稍微复杂的)订阅服务。 订阅类型为:20份早餐的早餐订阅,在注册后30天内使用。 例如,如果用户在4月1日注册早餐订阅,他可以选择任何20天,直到4月30日。 我制作了以下表格和相应的模型: 用户模型和表 订阅表和型号 订阅用户透视(?)带有软删除的表 我已经用belongsToMany关系更新了相应的模型 用户: 订阅模式 我需要帮助解决的问题1。数据库/模型结