我有一个按日期排序的元素队列。我需要提取具有相同日期的前 n 个元素并将它们添加到临时 ArrayList 中,从中选择其中一个并废弃其他元素。之后,我需要继续对队列中具有相同日期的下 n 个元素执行相同的操作(将它们提取到临时列表等),直到队列中没有更多项目。
// some notes to help you understand the code
PriorityQueue<Results> r, size(4), elementsEqualByTime(1=2,3=4);
List<Comments> c, size(2);
ArrayList temp;
if (c.size() != r.size() && resultIter.hasNext()) {
//first iteration will compare element 0 to itself -> 100% true
ResultObject r2 = resultIter.next();
ResultObject r1 = r2;
while (resultIter.hasNext() && r1.getTime().equals(r2.getTime())) {
temp.add(r1);
//we add the matching elements before we continue
r1 = r2;
temp.add(r1);
if (resultIter.hasNext()) {
//after we add the 2 matching elements we continue
r2 = resultIter.next();
}
}
//use the items in temp
temp.clear();
}
现在它适用于第一组元素,但在第二次迭代中,它不会向 temp ArrayList 添加任何元素。我很感激这个解决方案的帮助,但我也愿意接受不同的建议。