59

順序付けされた LinkedHashMap があり、マップの最初の場所または最後の場所など、特定の index に要素を追加したいと考えています。LinkedHashMap の特定の位置に要素を追加するにはどうすればよいですか?

LinkedHashMap の FIRST または LAST 位置に要素を追加できたとしても、役に立ちます!

4

9 に答える 9

28
于 2014-11-30T15:22:18.303 に答える
26

順序を変更することはできません。それはinsert-order(デフォルトで)またはaccess-orderこのコンストラクターで:

public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

  • 指定された初期容量、負荷係数、および順序付けモードで、空の LinkedHashMap インスタンスを構築します。

  • パラメータ: initialCapacity - 初期容量 loadFactor - 負荷係数 accessOrder - 順序付けモード - アクセス順の場合は true、挿入順の場合は false

  • 例外: IllegalArgumentException - 初期容量が負の場合、または負荷係数が正でない場合

見る:LinkedHashMap

于 2011-10-06T20:08:12.117 に答える
6

LinkedHashMap2 つのアレイに分割するだけです。サイズの最初の配列を作成index - 1し、最後に new を配置しEntryます。次に、最初の配列に2番目の配列のエントリを入力します

于 2012-10-30T13:00:09.627 に答える
1

ですMap。インデックスはありません。バケツが付いています。それが機能する方法は、あなたがするときです

put(key, val)

キーをハッシュして、val を入れるバケットを見つけます。

LinkedHashMap二重にリンクされたリストを維持するため、エントリが挿入される (または、マップをインスタンス化する方法に応じてアクセスされる) 順序を記録できます。Map 上の API には、リンク リストの特定のインデックスに key,val のペアを挿入するメソッドはありません。これは目的ではないためです。

于 2011-10-06T20:07:23.987 に答える