java - 如何使用比较器(用于二分搜索)将 DateTime 与对象中的 DateTime 字段进行比较?

标签 java comparator

我想使用二分搜索将输入的日期与假期对象的排序列表进行比较。假期对象由一个带有名称的字符串和一个 jodatime 日期时间组成。所以我正在比较相同的类型,但一个是对象的一部分,另一个不是。

我有:

public class DateTimeComparator implements Comparator<DateTime> {
    public int compare(DateTime userDate, DateTime listHoliday) {
        if (userDate.equals(Holidays.getAllHolidays().date)) {
        return 1;
        }
        else {
        return 0;
        }
    }
}

Eclipse 的反馈是无法解析日期。如何正确指向假期列表的日期字段?

编辑:所以如果我不需要比较器(在另一个问题中向我建议),我如何构建我的二分搜索?到目前为止我已经:

public static boolean isHoliday(List<Holiday> holidayList, DateTime date) {
        if(Collections.binarySearch(holidayList.date, date)) {
            return true;
        }
        return false;
}

最佳答案

您不需要为此编写一个ComparatorDateTime本质上已经是Comparable了。此外,引用 LIST 的date 字段是没有意义的;它是具有该字段的列表的元素,而不是列表本身。

您想使用Collections.binarySearch相反,您自己处理输出。

关于java - 如何使用比较器(用于二分搜索)将 DateTime 与对象中的 DateTime 字段进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585807/

相关文章:

java函数定义与对象创建

c++ - 如何定义另一个类数据成员上的 `std::set` 排序?

java - Java中无法将字符串转换为日期

javac 将文件夹 A 中的文件编译到文件夹 B ( linux )

java - Android Studio : file written to another directory

java - 这种聚合在 Kafka 流中如何工作?

java - System.getProperty (“java.class.path” ) 无法在 Web 应用程序中工作

java - 发送带有 boolean 值的模型类以改进有时不接受该 boolean 值的端点

java - 能够在不引用父类的情况下实例化静态内部类

java - 类无法解析为类型