gpt4 book ai didi

java - 从具有日期比较的列表中删除

转载 作者:行者123 更新时间:2023-11-29 06:26:47 25 4
gpt4 key购买 nike

我必须删除 param.getFromDateTime 之前和 params.getToDateTime 之后的所有对象。我是这样做的:

for (ListIterator<Doc> iterator = doc.listIterator(); iterator.hasNext(); ) {
while(iterator.hasNext()){
if(param.getFromDateTime() != null
&& doc.get(iterator.nextIndex()).getDate().before(params.getFromTime())) {
iterator.remove();
}
if(params.getToDateTime() != null
&& doc.get(iterator.nextIndex()).getDate().after(params.getToDateTime())) {
iterator.remove();
}
}
}

我可以做得更好更清楚吗?

最佳答案

你不需要两个循环,你也不需要 ListIterator
请注意,这两个条件可能为真,但在任何情况下您都只想删除一个元素,因为调用两次 remove() 会引发异常。
您还可以直接从迭代的 Doc 对象中提取 date 以使其更清晰一些:

for (Iterator<Doc> iterator = doc.iterator(); iterator.hasNext(); ) {
Date date = iterator.next().getDate();

if( (param.getFromDateTime() != null && date.before(params.getFromTime()))
|| (params.getToDateTime() != null && date.after(params.getToDateTime()))) {
iterator.remove();
}

}

关于java - 从具有日期比较的列表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com