現在、バイナリ検索の問題で、1つのパラメータを渡すように求められているオブジェクトがオブジェクトです。 これは可能ですか?通常、私はこのような問題に対して2つのパラメータを使用します。私が使用してバイナリ検索と通常 - >オブジェクトだけを渡すことによる手動バイナリ検索
int binarySearch(int[] list, int searchItem)
{
int mid=0;
int start=0;
int end=list.length-1;
boolean found=false;
//Loop until found or end of list.
while (start <= end && !found)
{
mid = (start + end)/2;
if (list[mid] == searchItem)
found = true;
else
if (list[mid] > searchItem)
end = mid - 1;
else
start = mid + 1;
}
if(found)
return mid;
else
return(-1);
}
しかし、それはちょうどこのように一つのパラメータを渡すことが可能である??私は配列リストを検索する必要があります。
public int binarySearch(Moon searchItem){
int mid = 0;
int start = 0;
int end = moons.size() -1;
boolean found = false;
while(start <= end && !found){
mid = (start + end)/2;
if(moons.get(mid).equals(searchItem)){
found = true;
}
else{
if(???)) {
}
else
etc etc
}
}
return 0;
}
'list [mid]'を 'moons.get(mid)'に置き換えることができれば、それを2回行うことができます!あなたの '??? 'を' moons.get(mid) 'に置き換えてください! (そして、Azodiousはオブジェクトを比較する必要があると言っていましたが、実際には多くのコンテキストを投稿していませんでした。誰かからたくさんのコードがあるようですので、あなたのムーンはすでにcompareToメソッドを持っています) –