Java 遍历集合并继续
我遍历一个集合。 如果未设置CarDetail的值,我希望循环再次从下一个CarDetail开始。 但不知何故,我的继续行不通。难道不能将continue与迭代器一起使用吗Java 遍历集合并继续,java,iterator,Java,Iterator,我遍历一个集合。 如果未设置CarDetail的值,我希望循环再次从下一个CarDetail开始。 但不知何故,我的继续行不通。难道不能将continue与迭代器一起使用吗 final Set<CarDetail> tmpDetail = new HashSet<CarDetail>(details); for(Iterator<CarDetail> iter = tmpDetail.iterator(); iter.hasNext();){
final Set<CarDetail> tmpDetail = new HashSet<CarDetail>(details);
for(Iterator<CarDetail> iter = tmpDetail.iterator(); iter.hasNext();){
CarDetail detail = iter.next();
if(detail.getBack() == null){
continue;
}
... do something
}
final Set tmpDetail=新哈希集(详细信息);
对于(迭代器iter=tmpDetail.Iterator();iter.hasNext();){
CarDetail detail=iter.next();
if(detail.getBack()==null){
继续;
}
…做点什么
}
使用continue with迭代器没有错。您甚至可以将其与增强的for循环一起使用(对于每个循环):
final Set tmpDetail=新哈希集(详细信息);
对于(CarDetail详细信息:tmpDetail){
if(detail.getBack()==null){
System.out.println(“跳过”+detail.toString());
继续;
}
System.out.println(“处理汽车细节:+detail.toString());
//…做点什么
}
您如何确定在发布的代码中忽略了continue语句?
通过一些println语句,我们可以验证continue是否如我们所期望的那样工作。您可以直接迭代
集合
,而无需获得迭代器
,如果愿意,可以在循环中使用continue
。以下是一个例子:
Set<Integer> intSet = new HashSet<Integer>();
intSet.add(1);intSet.add(2);intSet.add(3);
for(Integer setElem : intSet)
{
if(setElem.intValue() == 2) continue;
System.out.println("Current set element is " + setElem);
}
因为如果是2,则有一个continue
。由于不能保证在集合
中排序,因此输出也可能是
Current set element is 3
Current set element is 1
这只是一个For循环。像任何for循环一样,您可以使用continue;我觉得很好。请添加关于什么是出乎意料的以及您如何证明这一点的信息。您能否尝试重新表述您正在尝试做的事情?我是否可以建议对循环使用增强的
for(CarDetail-detail:iter){
会做得很好!或者更好的是for(CarDetail-detail:details){
这很难解释,因为我遇到了一个奇怪的错误,我认为它来自于此..但似乎不是..所以我想我可以关闭这个线程..谢谢..他为什么需要迭代器?他可以简单地通过集合进行for循环
Current set element is 1
Current set element is 3
Current set element is 3
Current set element is 1