0
我已經創建了ArrayList,並且我想使用二進制搜索通過註冊號搜索狗的詳細信息。我嘗試使用Collections.binarySearch
,但無法弄清楚。如何使用註冊號碼搜索狗的詳細信息,如姓名和品種?通過BinarySearch在ArrayList中搜索
DogSort.java
public class DogSort {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
ArrayList<Dog> listDog = new ArrayList<Dog>();
listDog.add(new Dog("Max", "German Shepherd", "1001"));
listDog.add(new Dog("Gracie","Rottweiler","1003"));
listDog.add(new Dog("Sam", "Beagle", "1002"));
}
}
Dog.java
class Dog {
private String name;
private String breed;
private String registrationNumber;
public Dog(String name, String breed, String registrationNumber) {
this.name = name;
this.breed = breed;
this.registrationNumber = registrationNumber;
}
public String getName() {
return this.name;
}
public String getBreed() {
return this.breed;
}
public String getRegistrationNumber() {
return this.registrationNumber;
}
public void setName(String name) {
this.name = name;
}
public void setBreed(String breed) {
this.breed = breed;
}
public void setRegistrationNumber(String registrationNumber) {
this.registrationNumber = registrationNumber;
}
@Override
public String toString() {
return this.name;
}
}
https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#binarySearch-java.util.List-T-java.util.Comparator-該部分是目前還不清楚?你嘗試了什麼代碼? – markspace
我曾嘗試閱讀Oracle文檔,然後發佈了問題。如果我不明白doc,我不應該在這裏發表問題嗎? – jParmar
我試過'Collections.binarySearch(listDog,「1002」);'但它不會工作,因爲我知道它應該與Dog類的參數匹配,但我不知道如何僅通過一個參數進行搜索? – jParmar