我有一个名为Course的对象数组列表,我试着用两种方式对它进行排序,按courseID和Course start time。
class Course implements Comparable<Course> {
private int courseID;
private String courseBeginTime;
// implement the compareTo method defined in Comparable
@Override
public int compareTo(Course course) {
if (getCourseID() > course.getCourseID()){
return 1;
} else if(getCourseID() < course.getCourseID()){
return -1;
} else {
return 0;
}
}
然后我有这些比较器:
//implement the comparators
class IDSorter implements Comparator<Course> {
public int compare(Course course1, Course course2) {
return Integer.compare(course1.getCourseID(), course2.getCourseID());
}
}
class startTimeSorter implements Comparator<Course> {
public int compare(Course course1, Course course2) {
return Integer.compare(Integer.parseInt(course1.getCourseBeginTime()),
Integer.parseInt(course2.getCourseBeginTime()));
}
}
我用我的主要方法对它们进行排序,如下所示:
Collections.sort(courseList, new IDSorter());
Collections.sort(student.getStudentSchedule(), new StartTimeSorter());
代码工作,我可以得到按ID或开始时间排序的列表......但我不明白为什么。在课程类中,compareTo方法仅比较getCourseID。
需要比较courseBeginTime的StartTimeStorer如何工作?
我如何重写才能更有意义?
如果在集合中指定
方法,它将考虑到这一点,即使类实现了比较器
。sortComparable
。尝试在排序方法中不传递比较器的情况下进行排序,您将看到您所期望的结果,即compareTo方法生效。
Collections.sort方法有两种变体。将单个参数作为可比对象的集合。另一个接受两个参数:第一个是集合,第二个是比较器。你用了第二个变体。因此,您的compareTo方法未被使用。
如果一个类实现了可比
,这被认为是这个类的自然排序。当您没有为Collections.sort
提供显式的比较器
时,将使用此排序。这就是为什么排序的单参数版本需要一个List
因此,下面的代码适用于一个活动,但当我使用onCreateView将其添加到一个片段中时,应用程序就会崩溃 Fragment公共类步骤扩展Fragment{ 12-13 15:17:15.062 984-984/com.stephenh.daytrack.daytrack.daytrackstephenh E/AndroidRuntime:致命异常:主进程:com.stephenh.daytrac
null 整个代码块: 代码主要摘自:http://www.bjw.co.nz/developer/misc/82-general-dev/1203-decrypting-a-saml-encrypted-assertion
我试图解决这个问题:https://leetcode.com/problems/palindrome-number/使用代码: 并在C中得到了这个错误: 但同样的代码在Java中运行得很好。为什么会这样?我该如何修复它?
输出框中的错误是:线程“main”java.lang.NullPointerException中的异常:无法分配字段“value”,因为“this.priorityqueue[this.count]”在Main.mainPriorityQueue.enQueue(PriorityQueue.java:16)为空(Main.java: 4) 它具有入队、出队、查看优先级队列等操作。主要显示排队部分的
即使输入了正确的电子邮件和密码,同样的错误也会一次又一次地出现。 更多参考请参见我的回复-https://github.com/ajitlol404/smartcontactmanager/tree/master/smartcontactmanager 控制台错误
我正在编写一个 C# 应用程序来解码此字符串: "--W 3原文3 R hcn Rfd Gl tZ SI 6 I jAi L CJ w cm 9 k dW N 0 X 2 lk I jo iO D Q wM DMz MD气LC J 1 cm wi O iI if Sx 7 InN 0 Y XJ 0 X 3 Rp b WU iO iI 3 OS In by b 2 R 1 Y 3 Rfa WQ iO