私は、キー/値のペアを挿入することができます何かをしたい、と順番は私がで項目を挿入する順序で挿入するために基づいて順序付けされる。Javaのキー/値のペアを持って集まり、注文
私が持っていますマップのいくつかの記事を見たが、私はそれらのために自分のコンパレータを記述する必要があるようだ。
私が挿入する最初のアイテムを最初に格納し、2番目をコレクションの2番目のアイテムにしたいとします。
私は、キー/値のペアを挿入することができます何かをしたい、と順番は私がで項目を挿入する順序で挿入するために基づいて順序付けされる。Javaのキー/値のペアを持って集まり、注文
私が持っていますマップのいくつかの記事を見たが、私はそれらのために自分のコンパレータを記述する必要があるようだ。
私が挿入する最初のアイテムを最初に格納し、2番目をコレクションの2番目のアイテムにしたいとします。
javadocsから、LinkedHashMap
を使用してみてください:
Mapインタフェースのハッシュテーブルとリンクリストの実装、それは二重リンクを維持するに予測可能な繰り返し順序でこの実装は、HashMapのとは異なりすべてのエントリを実行しているリストこのリンクリストは、通常、キーがマップに挿入された順序(挿入順序)である反復順序を定義します。
キーと値を含むclass
を作成し、お気に入りのList
実装に格納するだけではどうですか。
class Pair {
Key k;
Value v;
}
List<Pair> stuff = new ArrayList<Pair>();
Pair p = new Pair();
...
stuff.add(p);
あなたは
List<NameValuePair> values = new Arraylist<NameValuePair>();
名前/値のオブジェクトとリストを使用する必要があり、その後、通常のリスト
class NameValuePair {
private name;
private value;
... get/set
}
私はLinkedHashMapあなたがこのルートに行くならば、Map.Entryを見て、自分のNameValuePairクラスを定義するのではなく、それを使うことを強く考えてください。 – user949300
@ user949300: 'Map.Entry
@ruakh AbstractMap.SimpleEntryとAbstractMap.SimpleImmutableEntryをご覧ください。 – user949300
のLinkedHashMapが適切であるあなたと同じように、リストを使用するように思えますあなたが探しているデータ構造のタイプ! これは、HashMap(キーと値のペアに要素を含めることができます)を拡張し、エントリのリンクリスト(挿入順序を指定します)を保持します。イッツクラスAbstractMapに移動
https://docs.oracle.com/javase/8/docs/api/
と
HashMapの& TreeMapの
HashTable- http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html
をこれらをチェックアウト:
また、詳細については、マップの次のタイプをチェックしてください"LinkedHashMap"と呼ばれる。 –