5

ArrayList を使用すると、次のようなことができます

myList.set(myList.indexOf(oldItemNumber), newItemNumber);

LinkedHashSet でこれを達成する簡単な方法はありますか?

4

5 に答える 5

3

LinkedHashMap のドキュメントから:

Map インターフェイスのハッシュ テーブルとリンク リストの実装で、反復順序が予測可能です。この実装が HashMap と異なる点は、そのすべてのエントリを実行する二重リンク リストを維持することです。この連結リストは反復順序を定義します。これは通常、キーがマップに挿入された順序 (挿入順序) です。キーがマップに再挿入されても、挿入順序は影響を受けないことに注意してください。(呼び出しの直前に m.containsKey(k) が true を返すときに m.put(k, v) が呼び出された場合、キー k はマップ m に再挿入されます。)

したがって、新しい値を単純に put() するだけで、順序付けの現在の位置が維持されます。最後に追加する場合は、古い値を削除してから新しい値を追加します。

于 2013-12-13T10:07:51.730 に答える
3

put()メソッドを使用するだけです。その特定のエントリが更新されます。

于 2013-12-13T10:05:46.237 に答える
2

質問はセットには無意味です。Set に追加された新しいオブジェクトは、既存のオブジェクトと等しい (この場合は何も起こらない) か、等しくない (この場合は最後に追加される) かのいずれかです。

すべてを削除して再度追加しない限り、特定の場所にオブジェクトを挿入する方法はありません。

TreeSetオブジェクトを追加および削除するときに、提供されたコンパレータによって順序付けられたままになる順序付きセットを保持できるようにする方法を確認することができます。

于 2013-12-13T10:15:37.147 に答える
1

同じキーを使用するmap.put(key ,value)場合は、以前の値を置き換えます

于 2013-12-13T10:06:21.927 に答える