私はまだプログラミングにかなり慣れており、Javaの配列でのバイナリ検索の構文に問題があります。バイナリ検索を使用しているクラスとは別のクラスに存在するコンパレータメソッド(オーバーロードされた「compare」メソッド)を呼び出そうとしています。基本的に、私の目標は、に格納されている変数の1つだけを配列で検索することです。配列を構成するオブジェクト。コンパレータがないと、検索に必要な基準のみをキーとして保持する「ダミー」オブジェクトを作成したため、これを行うことができませんでした。
バイナリ検索のコードは次のとおりです。
Song searchSong = new Song(artistInput, artistInput, artistInput);
int search = Arrays.binarySearch(songs, searchSong, new compare<Song>());
これは、別のクラスのオーバーロードされたコンパレータのコードです。
public int compare (Song firstSong, Song secondSong) {
return firstSong.getArtist().compareTo(secondSong.getArtist());
}
それは私が見逃している単純なものだと確信していますが、私はまだ答えを見つけていません。助けていただければ幸いです。詳細が必要な場合はお知らせください。二分探索のコードが現在の形式では機能しないことを私は知っています。