是否可以更新 LinkedList 节点的数据?如果是,那怎么办?我真的需要一个提示!
问问题
3985 次
3 回答
3
这里有两个选项,取决于您是否存储可变类型:
- 如果您要存储可变类型(带有 getter/setter 方法的 frex 简单 Bean),您可以简单地更新对象的状态(与 LinkedList 实现本身无关)
- 如果您要存储不可变类型(frex 字符串),则可以使用LinkedList.set()用新实例覆盖链表中该位置的前一个元素
如果您要存储自定义类型,那么这确实是设计问题(您是否想让该类型可变)。
于 2012-12-30T11:58:58.687 回答
1
是的,你可以这么做。使用LinkedList.set(pos, newValue)
.
于 2012-12-30T11:40:37.980 回答
0
但我可以手动完成吗?如果是,比怎么样?
如果通过“手动执行”,您的意思是打破LinkedList
类封装并直接更新类私有数据结构......
- 可以使用反射来做到这一点。
- 尝试这是一个非常糟糕的主意/不好的做法。
正确的方法是使用set
操作。如果您担心迭代链表的成本,请使用不同的List
实现。上的set
操作很快ArrayList
,或者您可以使用自定义链表实现来完成此操作。
于 2012-12-30T12:02:22.783 回答