我是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
}
}