内部のオブジェクトを検索する私は、特定のオブジェクトの回数を検索する必要がありますその内側にカスタムオブジェクトの大規模なリスト(約12,000オブジェクト)を持っています。現時点では、私は主にオブジェクトを見つけるために強引な力を使っていますが、リストが大きくなるにつれて非常に遅くなります。これは今のところどのように検索しているのですか。のJava:大規模なリスト
List<MyObject> objectsToSearch; //List containing about 12000 objects
MyObject objectToCompare = new MyObject("this is a parameter"); //Object to compare with list
for(MyObject compareFrom : objectsToSearch){
if(compareFrom.equals(objectToCompare)){
System.out.println("Object found");
}
}
確かにこれを達成するにはより良い方法が必要です。この操作を複数回実行する必要があるため、パフォーマンスの向上は特に重要になります。
は、私の研究にもかかわらず、私は、任意の詳細なチュートリアルを発見していません。これをどのように達成するのですか?
オプションをソートしてバイナリ検索しています。または最初の場所でHashSetを使用しますか? – schwobaseggl
私はクイックまたはバイナリ検索を検討します。ブルートフォースは間違いなくあなたにとって最良の選択肢ではありません。 –
a)データを 'Map'でインデックスします。またはb)複数のスレッドを使用する。またはc)何らかの形でデータをソートし、バイナリ検索を実行します。またはd)読まれたデータベースを使用して、それらを検索するために12,000のアイテムをメモリに格納することは、おそらく最も賢明な考えではありません。 –