HashMapJava中的链接列表
我正在创建一个双链接,其中节点首先插入到链接列表中,每个节点包含三个属性,分别称为HashMapJava中的链接列表,java,linked-list,hashmap,Java,Linked List,Hashmap,我正在创建一个双链接,其中节点首先插入到链接列表中,每个节点包含三个属性,分别称为question\u id(int)、Skip\u logic(Boolean)和nextnode(int)。现在,如果skip_logic为true,则节点将检查下一个节点Q_id,并使用特定id移动到该节点。下面是一个示例 -------- <--- ---------- <---- --------- <----- --------- | Node1 | -
question\u id(int)
、Skip\u logic(Boolean)
和nextnode(int)
。现在,如果skip_logic
为true,则节点将检查下一个节点Q_id,并使用特定id移动到该节点。下面是一个示例
-------- <--- ---------- <---- --------- <----- ---------
| Node1 | ----> | Node 2 | -----> | Node 3 | -----> | Node 4 |
-------- ---------- --------- ---------
例如,现在假设用户想要从节点1转到节点2。用户还必须首先从整个列表中找到具有特定问题id的节点。现在在这个场景中花费不多,但是如果我们必须从节点1跳到节点1000,这需要大量的搜索成本,链接被破坏,您也创建了一个链接,并添加了另一个指针,其中包含指向两个路径的链接,但搜索成本仍然存在。我已经实现了这一部分,但搜索成本是我想要避免的。我正在考虑将linkedlist存储在hashmap中,这样,如果用户想要访问某个特定节点,他就可以进入该节点,然后它将把它带到某个特定节点。但问题是我必须将hashmap中的节点与其他节点连接起来,我想这会占用更多的内存。那么,我该怎么做,如果这个方法可行,我该怎么做?不,这不是家庭作业。我不确定我是否完全理解了你的解释,但是可能是符合你要求的好人选。这是一个
HashMap
,它还按照键添加到映射中的顺序维护条目的链接列表。因此,如果您迭代键集
,将按插入顺序获得键 您可能想查看一下
SkipList的内置Java实现是ConcurrentSkipListSet是的,我已经检查过了,但它没有遵循后端节点连接的功能。@soldiershin什么是“后端节点连接的功能”?我的意思是,我在运行时设置任何节点的下一个和后一个指针。但是hashmap在开始时插入下一个和后一个指针的方式上存储下一个和后一个指针。您得到了一些向上的投票,所以一定是我太胖了,但我看不出您想要实现什么。我们可以看到这个数据结构的一些用例吗。作为代码/sudo代码,纯文本的段落不清晰(至少对我来说)。
-------- ---------- <---- --------- ---------
| Node1 | <---- | Node 2 | -----> | Node 3 | -----> | Node 4 |
-------- ---------- --------- ---------
^ ^
| |
------------------------------------------------------------