只运行一次for-each循环

时间:2012-12-04 06:03:22

标签: java

我有以下循环,我想只运行一次。 我怎么能这样做?

for (AnnotationData annotations : annotation)

4 个答案:

答案 0 :(得分:9)

运行一次的循环不是一个循环。

如果annotations是数组,请使用annotations[0]获取第一个数组。如果是List,请执行annotations.get(0)。否则,请annotations.iterator().next()。如果您不确定该集合是否至少包含一个元素,请务必先检查该元素。

这将更加清晰,因为当人们看到for时,他们通常会期待一个循环。一个实际上,好吧,循环。

答案 1 :(得分:4)

爆发!

for (AnnotationData annotation : annotations) {
    // do something with "annotation"
    break; // only execute loop body once
}


其他答案是使用计数器或旗帜!?我永远不会惊讶于一些人写了多少代码来做最简单的事情。通常,程序员越差,他们编写的代码就越多。

编辑:

一些评论者误解,非循环版本会使用“less code”或“less lines”。这样的说法是不真实的......这里是精确的非循环等效代码:

if (!annotations.isEmpty()) {
    AnnotationData annotation = annotations.get(0);
    // do something with "annotation"
}

这使用相同的行数,但需要23个更多个字符的代码,尽管我授予你的意图更强调。

答案 2 :(得分:2)

不需要任何反击。只需在最后添加break

     for (AnnotationData annotations : annotation){
        //your all code
        break;
     }

答案 3 :(得分:-1)

int i=0;
for (AnnotationData annotations : annotation){
 if(i==1)
   {
    break;
   }
 i++;
}