关于Collections类的binarySearch使用,为什么binarySearch返回值为负数,还会抛异常,求解

Student.java

private int age;
private String name;

public Student(int age, String name){
    this.name = name;
    this.age = age;
}

public void setAge(int age) {
    this.age = age;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public String toString(){
    return "age:" + age + "\t" + "Name:" + name;
}

Main.java

public class Main {

public static void main(String[] args) {
    Student stu1 = new Student(48, "jre");
    Student stu2 = new Student(25, "JIe");
    Student stu3 = new Student(47, "Lil");
    Student stu4 = new Student(40, "Lilith");
    Student stu5 = new Student(20, "Jack");

    LinkedList linkedList = new LinkedList();
    linkedList.add(stu5);
    linkedList.add(stu4);
    linkedList.add(stu3);
    linkedList.add(stu2);
    linkedList.add(stu1);

    Collections.sort(linkedList, (Student o1, Student o2) ->{
        if (o1.getAge() > o2.getAge()){
            return 1;
        }else if (o1.getAge() == o2.getAge()){
            return 0;
        }else
            return -1;
    });

    int index = Collections.binarySearch(linkedList, stu2);
    System.out.println("二分查找法查找出的Index为:" + index);
    System.out.println("二分查找法查找出的值为:" + linkedList.get(index));

    Iterator it = linkedList.iterator();
    it.forEachRemaining(e -> System.out.println(e));
}

}

慕码人2483693
浏览 759回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java