0

インデックスでアイテムを取得および設定するためのJavaでの最良のデータ構造は何ですか?

最初はArrayListを使用していましたが、次のように、arraylistのサイズよりも大きい要素を挿入する必要がある場合があります。

pseudocode
array = new ArrayList();
array.set(10, object);

明らかに、これはエラーを返します。センチネル値で配列を初期化できましたが、次を使用しました。

array.size()

私の配列がいっぱいになっているといつも言うでしょう。明らかに、センチネル値で満たされているだけです。

4

2 に答える 2

3

値を挿入するインデックスが常にわかっている場合Mapは、通常、インターフェイスの具体的な実装を使用する方法が適しています。

この一連のクラスの利点は、インデックス (またはKeyこのコンテキストでは ) の知識があれば、O(1) 時間でメモリからオブジェクトを直接取得できることです。つまり、検索しないということです。

例えば:

Map<String, String> map = new HashMap<String, String>();

map.put("KEY", "VALUE");

String key = "KEY";

// Do some processing..

String value = map.get(key);

// value variable now contains "VALUE".

この一連のクラスの使用方法をしっかりと把握するには、ドキュメントを参照してください。

于 2013-11-11T09:07:59.483 に答える
0

場合によります(よくあることですが...)。インデックスが特定の合理的な範囲内にあり、それらのほとんどすべてを使用する場合は、適切なサイズの配列を使用します。

Object[] items = new Object[MAX_INDEX];

範囲がはるかに大きく、配列スロットの多くが使用されない場合は、Map(他の回答で既に述べたように) が必要になる場合があります。HashMap可能な実装の 1 つです。

Map<Integer, Object> items = new HashMap<Integer, Object>();
于 2013-11-11T09:11:43.270 に答える