我有一个 Meeting
实现 Comparable<Meeting>
的类.已覆盖 compareTo
方法将比较meetingDate
两个Meeting
首先是对象,如果它们相等,它将比较它们的 meetingTime
.我想把我所有的 Meeting
ProirtiyQueue<Meeting>
中的对象这样我就可以根据他们的 meetingDate
检索即将举行的 session 和 meetingTime
.使用的数据类型分别是 java.time.LocalDate 和 java.time.LocalTime。我如何比较meetingDate
和 meetingTime
在我的 compareTo(Meeting o)
方法。
public class Meeting implements Comparable<Meeting> {
private String title;
private String desciption;
private LocalDate meetingDate;
private LocalTime meetingTime;
public Meeting(String title, String description, LocalDate meetingDate, LocalTime meetingTime) {
this.title = title;
this.desciption = description;
this.meetingDate = meetingDate;
this.meetingTime = meetingTime;
}
public String getTittle() {
return title;
}
public void setTittle(String title) {
this.title = title;
}
public String getDescription() {
return desciption;
}
public void setDescription(String description) {
this.desciption = description;
}
public LocalDate getMeetingDate() {
return meetingDate;
}
public void setMeetingDate(LocalDate meetingDate) {
this.meetingDate = meetingDate;
}
public LocalTime getMeetingTime() {
return meetingTime;
}
public void setMeetingTime(LocalTime meetingTime) {
this.meetingTime = meetingTime;
}
public int compareTo(Meeting o) {
// comparison
}
}
最佳答案
您可以将 compareTo
的实现委托(delegate)给 Comparator
,它可以对给定 Meeting 的多个属性进行链式比较:
public class Meeting {
...
private static final Comparator<Meeting> comparator =
Comparator.comparing(Meeting::getMeetingDate)
.thenComparing(Meeting::getMeetingTime);
@Override
public int compareTo(Meeting that) {
comparator.compare(this, that);
}
关于java - 想要在 compareTo() 中将 Java.time.LocalDate 与 java.time.LocalTime 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894410/