0

私はこのArrayListを持っています - ArrayList<Object[]> tree...

この配列もあります - Object[] move...サイズが 2 です。

私のプログラムでは、一意の2D 配列が に追加されmove[0]、整数が に追加されmove[1]ます。次に、この配列が ArrayList に追加され、プロセスが繰り返されるため、「移動」のリストが作成されます。

私の問題は、要素が毎回一意であるため、move[1]要素のみに特定の値を含む ArrayList (「ツリー」) 内の配列 (「移動」) を見つける方法がわからないことです。move[0]

次に、すべての一致の配列/リストを作成したいと思います。たとえば、 の値まで一致するすべての値move[0]を含む配列。したがって、必要な動きを含む 2D 配列の配列/リストが残ります。move[1]3

ありがとう、マット

4

2 に答える 2

1

最も簡単な方法は、オブジェクトを繰り返し処理し、見つかった一致を使用しtreeて新しいオブジェクトを構築するArrayListことですが、これにはそのサイズに比例して時間がかかりtreeます。速度を求めている場合は、 a を維持できますHashMap<Integer, ArrayList<Object[]>>。ここで、キーは に格納する整数move[1]であり、値はそのキーを持つすべての移動のリストであるため、そのリストの取得は O(1 )

于 2012-04-22T20:06:17.287 に答える
1

あなたが必要としているのはkey-valueデータ構造であり、それを実装するためにかなり奇妙な方法を選択したように私には思えます。ジェネリックを使用できない場合 (何らかの理由で古い jdk を使用している場合) を使用するか、
型の安全性を強制するために using 型を使用する必要があります。 HashTableHashMap

于 2012-04-22T20:31:31.730 に答える