Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java通过引用从链表中删除节点_Java_Data Structures_Linked List - Fatal编程技术网

Java通过引用从链表中删除节点

Java通过引用从链表中删除节点,java,data-structures,linked-list,Java,Data Structures,Linked List,如何通过引用对象或特定节点有效地从java的LinkedList中删除节点?使用remove(object)遍历整个列表,如文档所示:“删除第一个元素e,以便(o==null?e==null:o.equals(e))”。我可以通过对节点的特定引用来删除吗?我不介意将对节点的引用存储在对象本身中。我不能使用列表的索引,因为它可能会更改。如果没有,是否有其他数据结构允许我执行此操作?您可能需要使用 如官方API所述,删除、插入通常为固定时间: 此类为基本操作提供恒定时间性能 (添加、删除、包含和大小

如何通过引用对象或特定节点有效地从java的LinkedList中删除节点?使用remove(object)遍历整个列表,如文档所示:“删除第一个元素e,以便(o==null?e==null:o.equals(e))”。我可以通过对节点的特定引用来删除吗?我不介意将对节点的引用存储在对象本身中。我不能使用列表的索引,因为它可能会更改。如果没有,是否有其他数据结构允许我执行此操作?

您可能需要使用

如官方API所述,删除、插入通常为固定时间:

此类为基本操作提供恒定时间性能 (添加、删除、包含和大小),假设散列函数分散 将这些元件正确地安装在铲斗之间

如果您决定使用
HashSet
,请不要忘记覆盖对象中的
equals
hashcode
方法。

您可能需要使用

如官方API所述,删除、插入通常为固定时间:

此类为基本操作提供恒定时间性能 (添加、删除、包含和大小),假设散列函数分散 将这些元件正确地安装在铲斗之间

如果决定使用
HashSet
,请不要忘记覆盖对象中的
equals
hashcode
方法。

尝试使用。它基本上是一个
散列集
,其元素具有确定性排序。或者,您也可以将其视为一个
链接列表
,由元素查找表支持

我相信
删除(对象)
操作将是固定时间。

尝试使用。它基本上是一个
散列集
,其元素具有确定性排序。或者,您也可以将其视为一个
链接列表
,由元素查找表支持


我相信
remove(Object)
操作将是常数时间。

本质上你想要一个节点指针?你自己的链表?内置的
链接列表
?如果是您自己的,则取决于您如何实现它。你试过什么?您能否发布相关代码,并描述您遇到的问题?至于其他数据结构,这取决于您的需求。你必须更具体一些。本质上你想要一个节点的指针?你自己的链表?内置的
链接列表
?如果是您自己的,则取决于您如何实现它。你试过什么?您能否发布相关代码,并描述您遇到的问题?至于其他数据结构,这取决于您的需求。你必须更具体一些。我确实考虑过一个哈希表,但是我需要保存插入顺序。另外,当我想通过引用直接访问时,哈希似乎是一种解决方法。在这种情况下,@tskuzzy回答说,您需要一个
LinkedHashSet
。但是哈希不是我考虑的一个哈希集,但我需要保留插入顺序。另外,当我想通过引用直接访问时,哈希似乎是一种解决方法。在这种情况下,@tskuzzy回答说,您需要一个
LinkedHashSet
。但是哈希不是一个“解决方法”,谢谢,这非常接近我想要的。然而,当我希望通过引用直接访问时,哈希似乎仍然是一种解决方法。哈希集不允许重复。您可能需要定义equals和hashCode方法,并记住这一点。如果交互性能非常关键,您还需要注意初始容量。谢谢,这与我想要的非常接近。然而,当我希望通过引用直接访问时,哈希似乎仍然是一种解决方法。哈希集不允许重复。您可能需要定义equals和hashCode方法,并记住这一点。如果交互性能至关重要,您还需要注意初始容量