2011-07-21 16 views
0

collectionoverflowflowでコレクションを検索することに関する多くの記事があります。コレクションのソートに関する記事もたくさんあります。私は両方を処理するソリューション(データ構造)を探しています。マップは検索に適しています(map.containsKey(key)、map.get(key))。 ArrayListsはソートに最適です(単純なComparatorを使用)。 私のプログラムは、要素をHashMapに追加します(.containsKey(key)でdupesをチェックします)。次に、マップ値がArraylistに割り当てられます。これはシンプルで(1行のコード)、非常に非効率的です。それは2倍のメモリを使用します。検索と並べ替えの際に使用するコレクション

プログラムでは固有の要素が必要ですが、重複要素はどうですか?私はJavadocをスキャンして、必要なフレーバー(Map、List、Table、Set、Tree、Vector、Priorqueueなど)のコレクションタイプが多数あることを確認しました。重複する要素を含む、検索と並べ替えを処理するJavaコレクションが1つありますか?

+1

キーで検索して値で並べ替えるには、これは正しいですか? – Marcelo

+0

はい、検索して並べ替えます。 – Fred

答えて

2

TreeMapとお考えですか?

マップは、そのキーの自然順序付けに従ってソートされた、またはマップ作成時に提供Comparatorによって、使用するコンストラクタに応じています。

+0

TreeMapのように見えます。は、キーの検索とソートを行います。 .containsKey(key)と.get(key)メソッドと、インスタンス化時にComparatorを使用してキーを順番に保持する並べ替え/並べ替え機能があります。 – Fred

+0

お待ちください... VALUESのソートはどうですか? – Fred

2

TreeMapを試しましたか?彼らは検索のためにすばらしいことになるでしょう(O(ln n))、あなたは.values()メソッドを使って得ることができるコンパレータの周りでソートされます。

関連する問題