作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 个日期和 3 个数字
Date date1 = "2013-01-23";
Date date2 = "2013-03-24";
Date date3 = "2012-12-20";
number1 = 10;
number2 = 0;
number3 = 3;
第 1 步:我必须检查我拥有的三个日期中的最新日期,并选择与该日期对应的数字。
第2步:如果该日期对应的数字为0,我需要三个日期中的下一个最高值
注意:日期可以为null
如果所有日期都不为空,我的代码就可以工作。当其中一个日期为 null
if(date1 != null && date3 != null) {
if(date1.compareTo(date3) > 0 && number1 > 0) {
dateCompare = date1;
object.set(number1);
} else if(date3.compareTo(date1) > 0 && number3 > 0) {
dateCompare = date3;
object.set(number3);
}
}
if(date2 != null) {
if(dateCompare != null) {
if(date2.compareTo(dateCompare) > 0 && number2 > 0 ) {
object.set(number2);
dateCompare = date2;
}
}
}
更新
示例如果其中一个日期为 null
如果 date1 = null
且 date2 > date3
。 number2 = 0
和 number3 = 1
。然后我想将值设置为 number3
有人可以建议我一种方法来处理我正在寻找的东西吗?
最佳答案
如何处理 null
完全取决于您。
此示例使用 TreeMap
按 Date
对键/值对进行排序,然后按降序循环,直到找到非零值。
此实现会删除 null
值,因为它们无法进行有意义的排序。从OP的示例来看,这似乎是处理null
的正确方法。唯一剩下的问题是,如果一切都是 null
该怎么办。
private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
final TreeMap<Date, Integer> map = new TreeMap<Date, Integer>() {
@Override
public Integer put(Date key, Integer value) {
if (key != null) {
return super.put(key, value);
}
return null;
}
};
map.put(parseDate("2013-01-23"), 10);
map.put(parseDate("2013-03-24"), 0);
map.put(parseDate("2012-12-20"), 3);
for (final Entry<Date, Integer> entry : map.descendingMap().entrySet()) {
if (entry.getValue() > 0) {
System.out.println(entry + " has nonzero value");
break;
}
System.out.println(entry + " has zero value. Continue looking.");
}
}
public static Date parseDate(final String date) {
if (date == null) {
return null;
}
try {
return dateFormat.parse(date);
} catch (ParseException ex) {
ex.printStackTrace(System.out);
return null;
}
}
输出:
Sun Mar 24 00:00:00 GMT 2013=0 has zero value. Continue looking.
Wed Jan 23 00:00:00 GMT 2013=10 has nonzero value
我当然建议使用 TreeMap
而不是您的自定义代码,这对于代码的其他读者来说更清晰。为什么要重新发明轮子?
关于java - 返回一个考虑日期和数字的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625909/
我是一名优秀的程序员,十分优秀!