是否可以更新LinkedList节点的数据?如果是,那么怎么做?我真的需要一个提示!
根据是否存储可变类型,这里有两个选项:
- 如果存储可变类型(frex-simpleBeans和getters/ssetter方法(,则可以简单地更新对象的状态(与LinkedList实现本身无关(
- 如果存储的是不可变类型(frex-Strings(,则可以使用LinkedList.set((用一个新实例覆盖链表中位置处的前一个元素
如果您正在存储一个自定义类型,那么这实际上是一个设计问题(无论您是否希望使该类型可变(。
是的,你可以做到。使用LinkedList.set(pos, newValue)
。
但是我可以手动操作吗?如果是,怎么办?
如果你所说的"手动操作"是指破坏LinkedList
类的封装并直接更新类的私有数据结构。。。
- 使用反射可以做到这一点
- 尝试真是个坏主意/坏做法
正确的方法是使用set
操作。如果您担心迭代链表的成本,请使用不同的List
实现。set
操作在ArrayList
上很快,或者您可以使用自定义链表实现来完成此操作。