Java 如何对另一个类的列表的一个字段执行二进制搜索?

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

我正在将输入的日期与假期列表进行比较

holiday对象由一个名为的字符串和一个jodatime Datetime组成

在假期课程中,我有:

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)