-4

是否可以更新 LinkedList 节点的数据?如果是,那怎么办?我真的需要一个提示!

4

3 回答 3

3

这里有两个选项,取决于您是否存储可变类型:

  1. 如果您要存储可变类型(带有 getter/setter 方法的 frex 简单 Bean),您可以简单地更新对象的状态(与 LinkedList 实现本身无关)
  2. 如果您要存储不可变类型(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 回答