获取已知元素的集合的上一个和下一个元素

时间:2020-04-28 00:04:28

标签: java collections iterator java-stream

如何获取已知项目的下一个和上一个收集项目?

“舞台”对象是已知的,您需要为其获取前一个和后一个

我试图这样做,但是失败了(

Iterator<Stage> it = project.getProjectStages().iterator();
    for (Stage stage1:
         project.getProjectStages()) {
        while (it.hasNext()) {
            if (stage1.getStageId() == stage.getStageId()) {
                nextStage = it.next();
                previousStage = nextStage;
            }
        }
    }

1 个答案:

答案 0 :(得分:2)

很不幸,您的逻辑已被破坏。您在next中有if语句,因此冒着无限循环的风险。而且该迭代位于另一个迭代内,可能会多次使用同一迭代器。

我怀疑您想要类似的东西

while (iter.hasNext()) {
    current = iter.next();
    if (current.getStageId() == target) {
         if (iter.hasNext())
             following = iter.next();
         break;
    }
    previous = current;
}
相关问题