7

どちらかを選択することの主な利点と、その選択に伴う不利益を誰かが説明できますか?

4

5 に答える 5

22

それらはさまざまな問題を解決します。LinkedHashMap はキーから値へのマッピングを行い、LinkedHashSet は単純に重複のないもののコレクションを格納します。

リンクされたハッシュ マップは、キーと値のペアをマッピングするためのものです。たとえば、名前と年齢を保存します。

Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);

一方、リンクされたハッシュ セットは、1 つのもののコレクション (名前) を格納するためのものです。たとえば、次のようになります。

Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");
于 2009-06-10T21:35:58.223 に答える
6

LinkedHashSet には、要素の順序を定義するすべてのエントリを実行する二重リンク リストが内部的に含まれています。このクラスは null 要素を許可します。

このクラスの実装は同期されていないため、外部で同期する必要があります。 LinkedHashMap も同期されず、外部で同期する必要があります

例えば:

Map map = Collections.synchronizedMap(new LinkedHashMap());

それ以外は、LinkedHashSet は要素ごとに単一の値を格納し、LinkedHashMap はキーと値のペアを格納します。
以下の図では、java.util.Collections を確認できます。実線のボックスは具体的なクラスの実装を示して
います代替テキスト http://www.softfinity.com/diag1.png

于 2009-06-11T05:23:14.187 に答える
3

セットには値だけがあり、重複を入れることはできません。マップにはキーと値のペアがあります。それらにはさまざまな用途があります。

セットはオブジェクトのグループを渡すコレクションとして使用されますが、マップは、各要素を識別する一意のキーがあり、そのキーでアクセスできるようにする場合に役立ちます。

于 2009-06-10T21:34:21.753 に答える
2

1 つはセットで、1 つはマップです。特定のシナリオに適したデータ構造を選択します。

于 2009-06-10T21:32:12.927 に答える
2

LinkedHashMapLinkedHashSet違いは1つだけで、それは両親の違いによってもたらされますHashMapHashSet繰り返しますが、HashSetは の単なるバリエーションですHashMap。すべての値が単一の最終オブジェクトを指してHashSetいると言えます。HashMapしたがって、どちらも大きな違いはありません。

を使用LinkedHashSetすると、キー以外の最終オブジェクトを 1 つだけ使用することになります。を使用してLinkedHashMap、すべてのキーの値を null として設定すると、Set の目的でも LinkedHashSet よりも優れています。

于 2009-10-24T06:50:37.440 に答える