为什么较小的排在前面就要使用o1.getId-o2.getId
时间: 2023-04-07 15:03:27 浏览: 119
这是因为在Java中,o1.getId() - o2.getId()可以用来比较两个对象的大小。如果o1.getId()小于o2.getId(),则结果为负数,如果o1.getId()等于o2.getId(),则结果为0,如果o1.getId()大于o2.getId(),则结果为正数。这种比较方式可以用来对对象进行排序,例如在集合中使用Collections.sort()方法。
相关问题
,请逐句详细解释这段代码是什么意思 //按照id排序 Comparator<Employee> c = new Comparator<Employee>() { @Override public int compare(Employee o1, Employee o2) { // TODO Auto-generated method stub return o1.getId() - o2.getId(); } }; Comparator<Employee> c1 = (o1,o2) ->o1.getId() - o2.getId(); Collections.sort(empList, (o1,o2) ->o1.getId() - o2.getId()); empList.forEach(s ->{ System.out.println(s); });
这段代码的作用是对一个名为empList的Employee对象列表进行按照ID进行排序。首先定义了一个名为c的比较器对象,重写了compare函数,使其按照Employee对象的ID属性进行比较,然后将这个比较器对象传入Collections类的sort方法中进行排序。而后面的c1对象以及empList.forEach()方法则是使用了Java 8引入的Lambda表达式,将比较器对象的具体实现直接传入sort方法和forEach方法中,达到简化代码的目的。最终结果是将empList中的Employee对象按照ID从小到大进行排序,然后依次输出到控制台。
public void sortById() { Collections.sort(stu, new Comparator<student>() { @Override public int compare(student o1, student o2) { return o1.getId().compareTo(o2.getId());
这是一个 Java 代码段,用来按照学生对象的 ID 属性进行排序。具体来说,这里使用了 `Collections.sort()` 方法对一个名为 `stu` 的学生对象列表进行排序,排序的依据是一个匿名内部类实现的 `Comparator` 接口。在这个匿名内部类中,重写了 `compare()` 方法,比较两个学生对象的 ID 属性,并根据比较结果返回一个整数值,来指示它们的相对顺序。如果返回的值为负数,则表示第一个学生对象应该排在前面;如果返回的值为正数,则表示第二个学生对象应该排在前面;如果返回的值为零,则表示两个学生对象的 ID 相同,顺序无所谓。通过这种方式,就可以按照学生对象的 ID 属性进行排序了。
阅读全文