Java 这是比较字符串和日期的好方法吗?

Java 这是比较字符串和日期的好方法吗?,java,Java,好的,我正在为手机构建应用程序,所以应用程序需要的内存非常少。在数据库中,我有yyyy-MM-dd格式的字符串,例如“1980-11-17”。我还列出了121个连续日期,如下所示: "1977-12-12", "1978-11-13", "1979-12-14","1980-12-16",... 我比较字符串,而不是将字符串转换为日期 if(yyyyMmDd.compareTo("1977-12-12")>=0 && yyyyMmDd.compareTo("1978-11

好的,我正在为手机构建应用程序,所以应用程序需要的内存非常少。在数据库中,我有yyyy-MM-dd格式的字符串,例如“1980-11-17”。我还列出了121个连续日期,如下所示:

"1977-12-12", "1978-11-13", "1979-12-14","1980-12-16",...
我比较字符串,而不是将字符串转换为日期

if(yyyyMmDd.compareTo("1977-12-12")>=0 && yyyyMmDd.compareTo("1978-11-13")<=0){
        return 1;
}
else if(yyyyMmDd.compareTo("1979-12-14")<=0){
        return 2;
}
else if(yyyyMmDd.compareTo("1980-12-16")<=0){
        return 3;
}
..... need to do another 119 times

如果(yyyyymmdd.compareTo(“1977-12-12”)>=0&&yyyyMmDd.compareTo(“1978-11-13”)内存效率?使用整数时间戳,而不是字符串。“yyyyy-mm-dd”使用10个字节,整数时间戳使用4个字节。如果日期列表是固定的,则使用二进制搜索而不是线性搜索,以大大减少能耗。@Mike如何转换“yyyy-mm-dd”int?如果“手机”=“安卓”,不要担心这里的优化(超过121项)。确保提供更清晰/相关的上下文。此外,这可能是“优化”错误的事情。使用数组和定义的映射可以消除几乎所有的if-else语句,使程序更小、更易于维护。(1个数组/源、1个循环和1-2个if语句与121+if语句相比……)