我是Java的初学者和地理专业的学生。

我使用XTF图像,其工作方式类似于TIFF。该图像存储了大约20,000行称为ping的行,其中包含以下信息:坐标,开始时间,停止时间...我在Intellij上使用的处理方法变得很沉重,但效果很好。
我想将存储在XTF映像中的信息切成两部分:
1张图片,前10000个ping,最后一个ping 20000个。稍后,我将收集两个图像。
我的问题很简单:如何通过“ for each”循环订购一个限制(

for (XtfPing ping : xtf.getPings())
        {
            writer.write( Double.toString( ping.x) );
            writer.write( "," );
            writer.write( Double.toString( ping.y) );
            writer.write( "\n" );
        }
        writer.close();

最佳答案

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

int limit = 0;
for (XtfPing ping : xtf.getPings())
{
    if (limit <= 10000) {
        // do something
    } else {
        // do something else
    }
    limit++;
}


另一种选择(如果getPings()返回支持随机访问的Collection(例如List)或数组)是用内置了迭代编号的传统for循环替换增强的for循环。

例如,如果getPings返回List

for (int i = 0; i < xtf.getPings().size(); i++)
{
    XtfPing ping = xtf.getPings().get(i);
    if (i <= 10000) {
        // do something
    } else {
        // do something else
    }
}

10-04 17:37