首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For-Each循环中的限制

For-Each循环中的限制
EN

Stack Overflow用户
提问于 2015-05-13 21:28:18
回答 3查看 12K关注 0票数 3

我是Java的初学者,也是一名地理测量学的学生。

我使用的是XTF图像,它的工作方式类似于TIFF。这个图像存储了大约20000行称为ping的行,其中包含几个信息:坐标、开始时间、停止时间……我在Intellij上使用的治疗方法太重了,但效果很好。我想将存储在XTF映像中的信息一分为二:一个包含10000个第一个ping,另一个包含最后20000个ping。稍后,我会收集这两张图像。我的问题很简单:如何使用“for each”循环订购一个限制(<=10000)?我将信息存储在csv文件中。

代码语言:javascript
复制
for (XtfPing ping : xtf.getPings())
        {
            writer.write( Double.toString( ping.x) );
            writer.write( "," );
            writer.write( Double.toString( ping.y) );
            writer.write( "\n" );
        }
        writer.close();
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-13 21:31:06

如果必须使用增强的for循环,则必须引入自己的计数器来测试迭代次数:

代码语言:javascript
复制
int limit = 0;
for (XtfPing ping : xtf.getPings())
{
    if (limit <= 10000) {
        // do something
    } else {
        // do something else
    }
    limit++;
}

另一种方法(如果getPings()返回一个支持随机访问的集合(如列表或数组))是将增强的for循环替换为传统的for循环,在该循环中内置了迭代号。

例如,如果getPings返回一个List

代码语言:javascript
复制
for (int i = 0; i < xtf.getPings().size(); i++)
{
    XtfPing ping = xtf.getPings().get(i);
    if (i <= 10000) {
        // do something
    } else {
        // do something else
    }
}
票数 5
EN

Stack Overflow用户

发布于 2018-04-26 04:56:14

我知道这并不完全适合OP的情况,但这可能会帮助其他希望使用Java 8实现迭代限制的人:

代码语言:javascript
复制
List<Object> myList = ...
List<Object> first10000 = myList.stream().limit(10000).collect(Collectors.toList());

for (Object obj : first10000) {
    // do stuff
}

或者更简单地说:

代码语言:javascript
复制
List<Object> myList = ...
myList.stream().limit(1000).forEach(o -> {
    // do stuff
});
票数 5
EN

Stack Overflow用户

发布于 2018-10-10 21:51:42

您可以使用int来递增每个循环,使用break;来停止for循环

代码语言:javascript
复制
 int i = 0;
 for (XtfPing ping : xtf.getPings()) {
     (if i <= amountOfLoops) {
        writer.write( Double.toString( ping.x) );
        writer.write( "," );
        writer.write( Double.toString( ping.y) );
        writer.write( "\n" );
     } else {break;}
 }
 writer.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30216319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档