首页 > 试题广场 >

下面代码输出的结果为

[单选题]
下面代码输出的结果为:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test{
    public static void main(String[] args) {
        List<Student> students = new ArrayList<Student>();
        students.add(new Student(10));
        students.add(new Student(18));
        students.add(new Student(15));
        Collections.sort(students);
        System.out.print(students.get(1).age);
    }
}
class Student implements Comparable<Student> {
    Integer age;
    public Student(Integer age) {
      this.age = age;
    }
    public int compareTo(Student s) {
        return s.age.compareTo(this.age);
    }
}

  • 15
  • 10
  • 18
  • 编译失败

正确答案
A
答案解析
Student类实现Comparable接口,重写compareTo()方法,因此是按年龄排序,排序之后的索引为1的元素就是集合中的第二个元素,就是中间那个,就是15。
compareTo()方法返回值
如果指定的数与参数相等返回 0。
如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。

发表于 2018-04-19 18:31:52 回复(0)
更多回答
实现降序排序
因为
    publicintcompareTo(Student s) {
        return s.age.compareTo(this.age);
    }

发表于 2019-03-02 20:20:02 回复(0)
把索引看成0了
发表于 2017-12-25 17:28:31 回复(1)
编译不通过呀...
发表于 2017-12-20 22:16:29 回复(1)
排序之后的索引为1的元素就是集合中的第二个元素,就是中间那个,就是15
发表于 2017-11-28 18:53:09 回复(0)