java - 获取已知集合的上一个和下一个元素
问题描述
如何获取已知项目的下一个和上一个集合项目?
“舞台”对象是已知的,如果有的话,你需要获取它的上一个和下一个
我试图这样做,但它失败了(
Iterator<Stage> it = project.getProjectStages().iterator();
for (Stage stage1:
project.getProjectStages()) {
while (it.hasNext()) {
if (stage1.getStageId() == stage.getStageId()) {
nextStage = it.next();
previousStage = nextStage;
}
}
}
解决方案
不幸的是,你的逻辑很糟糕。你有一个next
里面的语句,if
所以你冒着无限循环的风险。并且迭代在另一个迭代中,冒着多次使用同一个迭代器的风险。
我怀疑你想要类似的东西:
while (iter.hasNext()) {
current = iter.next();
if (current.getStageId() == target) {
if (iter.hasNext())
following = iter.next();
break;
}
previous = current;
}
推荐阅读
- java - 为什么抛出异常时我的方面代码不运行?
- python - 格式化时可以将字符串转换为大写吗
- ios - 在 tableViewHeader 中添加一个按钮,就像默认的 iOS 一样
- python - ImportError:没有名为“flask.ext”的模块
- python - 迭代作为列表的字典值以创建新的字典列表
- java - 何时使用 ConcurrentKafkaListenerContainerFactory?
- excel - 根据不同的列数据范围隐藏行
- vue.js - Laravel 和 vue 不提交数据而不是从数据库中查询数据
- html - 跨浏览器 CSS 规则
- c# - 将带有命名参数的字符串模板格式化为文字 c#