Java 遍历集合并继续

Java 遍历集合并继续,java,iterator,Java,Iterator,我遍历一个集合。 如果未设置CarDetail的值,我希望循环再次从下一个CarDetail开始。 但不知何故,我的继续行不通。难道不能将continue与迭代器一起使用吗 final Set<CarDetail> tmpDetail = new HashSet<CarDetail>(details); for(Iterator<CarDetail> iter = tmpDetail.iterator(); iter.hasNext();){

我遍历一个集合。 如果未设置CarDetail的值,我希望循环再次从下一个CarDetail开始。 但不知何故,我的继续行不通。难道不能将continue与迭代器一起使用吗

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