[解決済み] Mapを実装し、挿入順序を保持するJavaクラス?
質問
javaで、ハッシュを使わずにキーと値の関連付けをするクラスを探しています。 以下は、私が現在行っていることです。
-
に値を追加します。
Hashtable
. -
のイテレータを取得します。
Hashtable.entrySet()
. -
すべての値を繰り返し、。
-
を取得します。
Map.Entry
をイテレータに使用します。 -
型のオブジェクトを作成します。
Module
(カスタムクラス) の値に基づいています。 - JPanelにクラスを追加します。
-
を取得します。
- パネルを表示します。
この場合の問題は、値を取得する順番をコントロールできないので、(順番をハードコーディングしないと)指定された順番で値を表示できないことです。
私なら
ArrayList
または
Vector
を取得する必要があります。
Module
オブジェクトを使用することはできません。
ArrayList
または
Vector
.
誰かこれを行うフリー/オープンソースのJavaクラス、または、値を取得する方法を知っていますか?
Hashtable
は、いつ追加されたかに基づいていますか?
ありがとうございます。
解決方法は?
を提案します。
LinkedHashMap
または
TreeMap
. A
LinkedHashMap
はキーを挿入した順番で保持するのに対し
TreeMap
を経由してソートされた状態で保持されます。
Comparator
または自然な
Comparable
の順番に並べます。
要素をソートしておく必要がないため
LinkedHashMap
の方が速いはずです。
TreeMap
があります。
O(log n)
の性能
containsKey
,
get
,
put
および
remove
であるのに対し、Javadocsによると
LinkedHashMap
は
O(1)
をそれぞれ使用します。
もしあなたのAPIが、特定のソート順ではなく、予測可能なソート順だけを期待しているのなら、これら二つのクラスが実装するインターフェースの使用を検討してみてください。
NavigableMap
または
SortedMap
. これにより、特定の実装をAPIに漏らさず、後からその特定のクラスか全く別の実装に自由に切り替えられるようになります。
関連
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Java 順序型マップ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
ファインバグタイプ
-
final, finally, finalizeの違いについて話してください。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
javaでよく使われる英単語
-
IDEA パッケージステートメントの欠落
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
[解決済み] HashMapの挿入順序を保持するには?[重複)。