Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义对象的排序列表,其中我们正在排序的属性可以为空_Java_Sorting - Fatal编程技术网

Java 自定义对象的排序列表,其中我们正在排序的属性可以为空

Java 自定义对象的排序列表,其中我们正在排序的属性可以为空,java,sorting,Java,Sorting,我正在尝试对自定义对象的列表进行排序(假设Student),即List 在其加入日期的递减顺序中。现在,允许将joiningDate设置为null。在这种情况下,joiningDate为null的学生应先到,然后按其joiningDate的降序来剩余的学生 Class Student{ Date joiningDate; int rollNo; ... } 我尝试了以下方法:- Comparator<Student> myComparator = Comparat

我正在尝试对自定义对象的列表进行排序(假设Student),即
List
在其加入日期的递减顺序中。现在,允许将joiningDate设置为null。在这种情况下,joiningDatenull的学生应先到然后按其joiningDate的降序来剩余的学生

Class Student{
   Date joiningDate;
   int rollNo;
   ...
}
我尝试了以下方法:-

Comparator<Student> myComparator = Comparator.nullsFirst( 
                                       Comparator.comparing(Student::getJoiningDate, 
                                                              (s1,s2)->{ return s2.compareTo(s1);}
                                                        ));
Collections.sort(studentsList, myComparator);
Comparator myComparator=Comparator.nullsFirst(
Comparator.comparing(学生::getJoiningDate,
(s1,s2)->{返回s2.compareTo(s1);}
));
Collections.sort(studentsList,myComparator);
当学生对象为
null
时,此解决方案有效,但当属性joiningDate
null

时,此解决方案不包含

Class Student{
   Date joiningDate;
   int rollNo;
   ...
}
实现Compariable to您的类,然后将逻辑放入
Comparieto(Student o)
方法中,该方法应被重写

将接口添加到类中,如下所示:

public class Student implements Comparable<Student>
-如果您需要
ASC/DESC
订单,则可以返回1/1。

此解决方案没有

实现Compariable to您的类,然后将逻辑放入
Comparieto(Student o)
方法中,该方法应被重写

将接口添加到类中,如下所示:

public class Student implements Comparable<Student>

-如果您需要
ASC/DESC
订单,可以返回1/1。这将有助于回答您的问题吗?这回答了你的问题吗?这将有助于回答您的问题吗?这回答了你的问题吗?