繁体   English   中英

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

[英]Java delete node from linked list by reference

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

您可能要使用HashSet

如官方API所述,删除,插入通常会在固定时间内进行:

该类为基本操作(添加,删除,包含和大小)提供恒定的时间性能,假设哈希函数将元素正确地分散在存储桶中

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

尝试使用LinkedHashSet 它基本上是一个HashSet ,对其元素具有确定的顺序。 或者,您也可以将其视为由元素查找表支持的LinkedList

我相信remove(Object)操作将是恒定时间的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM