我需要帮助想出一个if-else条件语句来比较对象数组列表中的多个对象属性。
例如,假设我有一个约会数组列表
ArrayList<Appointment> list = new ArrayList<>(Arrays.asList(
new Appointment(1,101,new Date(),"9 AM - 10 AM"),
new Appointment(2,200,new Date(),"9 AM - 10 Am"),
new Appointment(3,200,new Date(),"11 AM - 1 PM")
));
这是Appointment
类:
public class Appointment {
private long id;
private long doctorLicenseNo;
private Date date;
private String time;
//constructor + getters and setters
}
我想检查一个医生的执照号码是否在特定的日期和时间被预约。这里有医生执照号码,日期和时间。
正如评论中所说,我想你会发现它不起作用,因为for循环每次都会擦除标签。
同样,这段代码过于复杂。你可以这样做:
boolean isDoctorBooked = list.stream()
.filter(a -> a.getDoctorLicenseNo() == licenseNo)
.anyMatch(a -> a.getDateTime() == dateTime);
假设您用正确的对象替换了日期和时间,如@rzwitserloot注释所示。