5

Java では List と Map をコレクションで使用しています。しかし、どのような場合に List を使用し、どのような場合に Map を使用するべきか理解できませんでした。両者の主な違いは何ですか?

4

7 に答える 7

12

ここで、 Java コレクションのチュートリアルを読むとよいでしょう。ただし、基本的に、リストはインデックスによってアクセスできる要素の順序付けられたシーケンスであり、マップは通常、キーから値への順序付けされていないマッピングです。(一部のマップは挿入順序を保持しますが、それは実装固有です。)

通常、キーと値のマッピングが必要な場合と、要素のコレクションだけが必要な場合は、かなり明白ですキーが値の一部である場合はわかりにくくなりますが、そのキーでアイテムを効率的に取得できるようにする必要があります。ある意味では、キーの個別のコレクションを持っていなくても、これはマップの適切な使用例です。

また、個別の要素Setの (通常は順不同の) コレクションであるもあります。

于 2012-05-03T06:08:10.810 に答える
5

マップKey:Valueペアの種類のデータ用です。たとえば、生徒のロール番号を名前にマップする場合です。

リストは、重複を許可する要素の単純な順序付きコレクション用です。たとえば、学生名のリストを表すために。

于 2012-05-03T06:09:09.417 に答える
1

HashList は、オブジェクトをハッシュ テーブルとリストに格納するデータ構造です。これは、ハッシュ マップと双方向リンク リストを組み合わせたものです。アクセスが速くなります。HashMap は、マップ インターフェイスのハッシュ テーブル実装です。同期されず、null 値を許可することを除いて、HashTable と同じです。List は順序付けられたコレクションであり、null と重複を許可します。位置アクセスが可能です。Set は、重複を許可しないコレクションです。最大 1 つの null 要素を許可できます。私たちの数学的集合と同じです。

于 2012-05-03T06:27:44.790 に答える
1

Map インターフェース Map は一意の識別子を考慮します。一意のキー (ID) を特定の値にマップします。もちろん、キーと値の両方がオブジェクトです。Map 実装を使用すると、キーに基づいて値を検索したり、値だけのコレクションを要求したり、キーだけのコレクションを要求したりできます。セットと同様に、マップは equals() メソッドに依存して、2 つのキーが同じか異なるかを判断します。

List インターフェイス List はインデックスを考慮します。List にはあり、非リストにはありませんが、インデックスに関連する一連のメソッドがあります。これらの主要なメソッドには、get(int index)、indexOf(Object o)、add(int index, Object obj) などがあります。3 つの List 実装はすべて、インデックス位置 (オブジェクトを特定のインデックスに設定するか、位置を指定せずに追加することによって決定する位置) によって並べ替えられます。この場合、オブジェクトは末尾に追加されます。

于 2012-05-03T06:12:48.600 に答える
1

list はリンクされたリストであり、すべてのオブジェクトがポインターを介して次のオブジェクトに接続されています。新しいオブジェクトをリストに挿入するのにかかる時間は O(1) ですが、残りの操作にはさらに時間がかかります。

それについての良い点は、必要な量のメモリを正確に使用し、それ以上のバイトを必要としないことです。

マップは配列を持つデータ構造であり、配列への各エントリはhashFunction(key)、キーに従って位置を計算する で計算されます。Map 内のほぼすべての操作は O(1) かかります (2 つの同一のキーがある場合の挿入を除く) が、スペースの複雑さはかなり大きくなります。

詳細については、ウィキペディアのHashMapリンクされたリストを試してください

于 2012-05-03T06:12:56.170 に答える
0
List - This datastructure is used to contain list of elements. 
       In case you need list of elements and the list may contain duplicate values, 
       then you have to use List.

Map - It contains data as key value pair. When you have to store data 
      in key value pair,so that latter you can retrieve data using the key,
      you have to use Map data structure.

リストの実装 - ArrayList、LinkedList
マップの実装 - HashMap、TreeMap

と比較HashMapしてArrayList- ページのすべてのノードを取得する場合、ハッシュ マップは最速のデータ構造です。ノードのリストは一定時間 (O(1)) で取得できますが、リストの場合は O(n) (n = ページ数、ソートされたリストの方が高速ですが、O(1) に近づくことはありません) です。

于 2012-05-03T18:41:53.230 に答える
0

List順序付けられたコレクション (シーケンス) です。このリストのドキュメントを確認してください。整数インデックス (リスト内の位置) で要素にアクセスし、リスト内の要素を検索できます。また、リストは要素の重複と複数の NULL 要素を許可します。

Map値をキーにマップするオブジェクトです。このマップのドキュメントを確認してください。マップに重複キーを含めることはできません。各キーは、最大で 1 つの値にマップできます。

于 2012-05-03T06:09:53.313 に答える