public class StudentList {
List<Student> sl=new ArrayList();
。。
public void queryInfo(Student s){
Collections.sort(sl);//先排序
Collections.binarySearch(sl, s.s_Name);
}
}
二分法有错 说参数有错 那个sl不对 但不知道为什么 怎么改
List<Student> sl=new ArrayList();
。。
public void queryInfo(Student s){
Collections.sort(sl);//先排序
Collections.binarySearch(sl, s.s_Name);
}
}
二分法有错 说参数有错 那个sl不对 但不知道为什么 怎么改
Collections.binarySearch(list, key, comp) 这种list 没有限制 key 是要比较的,comp 是一个比较器 对于要比较的类的比较依据定义总的来说 就是你传入的这个类 没有比较依据 程不知道该怎么比
}
而且要实现以下方法
public int compareTo(Student obj) {}查找时,第个参数应该为Student 的实例。
Collections.binarySearch(sl, s.s_Name);下面是我的一个例子,类似class Student implements Comparable<Student>{
public Student(int id){
this.id = id;
}
public int id;
public int compareTo(Student obj) {
return this.id - obj.id;
}
}public class T1{
public static void main(String args[]) {
List<Student> list = new ArrayList<Student>(); //加入数据
list.add(new Student(12));
list.add(new Student(13));
list.add(new Student(21));
list.add(new Student(3)); //排序前输出
for(Student stu : list){
System.out.print(stu.id);
System.out.print(",");
}
System.out.println();
Collections.sort(list);
for(Student stu : list){
System.out.print(stu.id);
System.out.print(",");
}
System.out.println();
int r = Collections.binarySearch(list, new Student(13));
System.out.println(r); }