LinkedList ノードのデータを更新することは可能ですか? はいの場合、どのように?実はヒントが必要です!
質問する
3985 次
3 に答える
3
可変タイプを格納しているかどうかに応じて、ここでは2つのオプションがあります。
- ミュータブル型(ゲッター/セッターメソッドを使用したfrex simple Beans)を格納している場合は、オブジェクトの状態を更新するだけで済みます(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 に答える