2012-12-30 38 views

回答

1

是的,你可以做到這一點。使用LinkedList.set(pos, newValue)。這裏

+0

但我可以手動嗎?如果是,比如何?給我一個提示。感謝 –

+1

如果你需要使用這個,你應該考慮一個ArrayList。 –

+1

@JunaidHassan你是什麼意思手動? –

3

兩個選項,取決於是否你存儲可變類型與否:

  1. 如果你存儲可變類型(FREX簡單豆的getter/setter方法),你可以簡單地更新狀態(與LinkedList實現本身無關)
  2. 如果您要存儲不可變類型(frex Strings),則可以使用LinkedList.set()
  3. 覆蓋鏈接列表中位置鏈接列表中的上一個元素

如果您要存儲自定義類型,那麼它確實是設計問題(是否要使該類型可變或不可)。

0

但我可以手動嗎?如果是,比如何?

如果「做手工」你的意思是通過打破LinkedList類封裝和直接更新類的私有數據結構...

  • 這是可能做到這一點使用反射。
  • 這是一個非常糟糕的想法/不好的做法嘗試。

正確的做法是使用set操作。如果您擔心重複執行鏈接列表的成本,請使用不同的List實現。 set操作在ArrayList上很快,或者您可以使用自定義鏈接列表實現。

+0

這將是一個好主意嗎? –

+1

一個好主意是使用LinkedList提供的公共接口。如果你想用一個新的對象替換一個對象,使用'set()'方法,如其他答案所示。 –