Java 如何对另一个类的列表的一个字段执行二进制搜索?
我正在将输入的日期与假期列表进行比较 holiday对象由一个名为的字符串和一个jodatime Datetime组成 在假期课程中,我有:Java 如何对另一个类的列表的一个字段执行二进制搜索?,java,class,methods,Java,Class,Methods,我正在将输入的日期与假期列表进行比较 holiday对象由一个名为的字符串和一个jodatime Datetime组成 在假期课程中,我有: public static List<Holiday> getAllHolidays() { return allHolidays; } public static boolean isHoliday(List<Holiday> holidayList, DateTime date) { if(Collection
public static List<Holiday> getAllHolidays() {
return allHolidays;
}
public static boolean isHoliday(List<Holiday> holidayList, DateTime date) {
if(Collections.binarySearch(holidayList.date, date)) {
return true;
}
return false;
我可以让它与for循环搜索一起工作,但我正在尝试让它与二进制搜索一起工作,因为它是一个排序列表。这是什么
holidayList.date
?(这是列表
不是假日
对象)
使用迭代器,对
列表中的所有假日进行迭代器,并检查日期是否与输入的日期匹配。我将定义一个比较器
,该比较器只使用日期
字段进行排序。不确定是否需要重新定义equals()
(我的直觉告诉我不需要)。SJuan76,这是正确的答案。你为什么不给我一个答案,这样我就可以给你互联网点数?这仍然是一个二进制搜索吗?不。要进行二进制搜索,你需要先对数组进行排序。
isHoliday(Holidays.getAllHolidays(), hearingDate)