0
按升序和降序對列表進行排序後,我想要調用binarySearch方法。 但它不工作,因爲我已經實施可比。collections.binarySearch()與可比較的不起作用
class Student implements Comparable<Student>{
private int id;
private String name;
public Student(int id, String name){
this.id = id;
this.name = name;
}
public int getId(){
return id;
}
public String getName(){
return name;
}
@Override
public int compareTo(Student o) {
int j = o.getId();
int result = this.id - j;
return result;
}
}
public class CollectionSearchDemo {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
list.add(new Student(3, "ouier"));
list.add(new Student(2, "fdgds"));
list.add(new Student(7, "kiluf"));
list.add(new Student(1, "6trfd"));
list.add(new Student(8, "hjgas"));
list.add(new Student(5, "ewwew"));
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student arg0, Student arg1) {
return arg0.getId() - arg1.getId();
}
});
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Student student = (Student) iterator.next();
System.out.print(student.getId()+":"+student.getName()+" ");
}
System.out.println("\nSorting in reverse order:");
// Collections.reverse(list);
Comparator<Student> collections = Collections.reverseOrder();
Collections.sort(list, collections);
Iterator iterator1 = list.iterator();
while(iterator1.hasNext()){
Student student = (Student) iterator1.next();
System.out.print(student.getId()+":"+student.getName()+" ");
}
System.out.println("I want to do searching ");
System.out.println("\n2 is at:"+Collections.binarySearch(list, 2, new Student()));
// facing exception at this line.I don't know what to use as argument of binarySearch() method.
}
}
我可以通過實施比較已經這樣做了,但我在我的項目,例如要求 請指引我。
您已刪除方法調用的結尾:'Collections.binary' – jonasnas 2013-02-15 00:34:49