자바를 처음 사용하고 Collections.binarySearch에 문제가 발생하면 javadoc을 비난하고 여기에서 많은 답변을 확인하지만 여전히 문제를 해결합니다. . 실제 코드 앞에, 배경 : 나는 사용자가 연락처 북을 관리 할 수 있도록 코드를 작성 중이다. 이 내 연락 클래스 i는 클래스 내부BinarySearch는 "컬렉션이 인수에 적용되지 않습니다"
public int compareTo(Contact contact) {
return name.compareToIgnoreCase(contact.getName());
}
또한 비교기를 가지고
public class Contact implements Comparable<Contact> {
private String name;
private String email;
private String phone;
private String address;
이고, 나는 copmare 자체
public class ContactComparator implements Comparator<Contact> {
@Override
public int compare(Contact first, Contact second) {
String one = first.getName();
String two = second.getName();
int f = one.compareToIgnoreCase(two);
return f;
}
}
에 대해 다른 클래스가코드에서 항상 내 목록을 정렬했습니다. 여기 누군가가 나를 도왔습니다.
Collections.sort(contacts , new ContactComparator())
지금 내 문제는 같이가는 검색 방법에 이진 검색을 사용하려고 시도하는 메신저입니다 :
public int ContactIndex(final String name){
return Collections.binarySearch(contacts, name, new ContactComparator());
}
그러나 그것은 나에게이 오류 제공 :
The method binarySearch(List, T, Comparator) in the type Collections is not applicable for the arguments (ArrayList, String, ContactComparator)
내가 필요로 당신의 다시 너희들을 돕는다, 모든 도우미들에게 감사해라!