私は、時間の経過とともにオブジェクトを収集するプログラムを持っています。これらのオブジェクトは、しばしば、プログラムが既に受け取ったオブジェクトの重複ではありません。ユニークなオブジェクトの数は、時には数万に上がることがあります。私のリストが成長するにつれて、物体が出現したかどうかを特定するのに時間がかかります。Java:使用済みのオブジェクトを効率的に追跡する
私の現在の方法は、すべてをArrayListに格納することです。 Collections.sort(al)を使用します。 Collections.binarySearch(al、key)を使用して、オブジェクトを使用したかどうかを判断します。新しいオブジェクトを見つけるたびに、私は挿入して並べ替える必要があります。
これを行うより良い方法があるのだろうかと思います。含有物があまりにも早く減速する傾向があります。私は可能な限りO(1)に近いものを探しています。
ありがとうございました。
これはjavaです。私が話しているものを理解する目的のために、私は基本的にこれを行う方法が必要になります。
public boolean objectAlreadyUsed(Object o) {
return \\ Have we seen this object already?
}
ArrayListの代わりにHashSetまたはHashMapを使用できます。 – afrischke