オブジェクトのArrayListで高速検索を実装したいと思います。これらのオブジェクトは、とりわけ、int oldId、int newId、およびintinListで構成されます。
ここで、リストのCollections.binarySearchを使用してバイナリ検索を実装しようとしましたが、問題は、対応するオブジェクトからnewIdを取得するために、oldIdとinListを使用して検索する必要があることです。例:oldId=9およびinList=1で、別の場所に割り当てられているnewIdを取得しようとしています。基本的にoldId-newIdをマッピングし、それらをグループ化しました。oldIdが重複している可能性がありますが、それらは異なるリストにあり、一意のnewIdを持っている必要があります。
これらのマップオブジェクトにハッシュマップを使用する方が良いと思いますか?または、oldIdおよびinList情報からnewIdを取得するための解決策(おそらくオブジェクトのコンパレーター)はありますか?高速検索アルゴリズムも探しています。
助けてくれてありがとう、私はアイデアに感謝します。
これは私が二分探索のために書いたコンパレータですが、ここにinList情報を追加する方法がわかりませんでした。
public class CompareTermId implements Comparator
<MObj>
{{
public CompareTermId(){}
public int compare(MObj a, MObj b){
if(a.oldTermId < b.oldTermId) return 1;
else if(a.oldTermId > b.oldTermId) return -1;
else return 0;
}
}