Java android ArrayList迭代器

Java android ArrayList迭代器,java,android,Java,Android,我试图在ArrayList上使用迭代器(为了摆脱for循环,不要问我为什么…),但是我需要在布尔条件下跳过其中一个数组的过程,我是否仍然应该使用索引和中断 // INTERPOLATION int i = 0; Iterator<CircularFifoQueue<SensorEvent>> buf = samplingFifoQueues.iterator(); while (buf.hasNext()) { if ( i == 2 && !mD

我试图在ArrayList上使用迭代器(为了摆脱for循环,不要问我为什么…),但是我需要在布尔条件下跳过其中一个数组的过程,我是否仍然应该使用索引和中断

// INTERPOLATION
int i = 0;
Iterator<CircularFifoQueue<SensorEvent>> buf = samplingFifoQueues.iterator();
while (buf.hasNext()) {
    if ( i == 2 && !mDeviceSensorGyro) {  // skip this queue if no gyroscope in device
       break;
    }               
    // proceed
   buf.next();
   i++;
}
//插值
int i=0;
迭代器buf=samplingFifoQueues.Iterator();
while(buf.hasNext()){
如果(i==2&&!mDeviceSensorGyro){//如果设备中没有陀螺仪,则跳过此队列
打破
}               
//进行
buf.next();
i++;
}
谢谢你的帮助

这个怎么样:

// INTERPOLATION
int i = 0;
Iterator<CircularFifoQueue<SensorEvent>> buf = samplingFifoQueues.iterator();
while (buf.hasNext()) {
    if ( i != 2 || mDeviceSensorGyro) {  // skip this queue if no gyroscope in device
       // proceed  
    }               

    buf.next();
    i++;
}
//插值
int i=0;
迭代器buf=samplingFifoQueues.Iterator();
while(buf.hasNext()){
如果(i!=2 | | mDeviceSensorGyro){//如果设备中没有陀螺仪,则跳过此队列
//进行
}               
buf.next();
i++;
}

但是我宁愿给队列元素附加一些属性来检查它。直接使用数字是不好的做法。

你想继续进行下一个元素的处理,还是只想完全摆脱它?@PopoFibo skip的意思是skip,不是吗?@Gangnus是的,但我不太清楚,因此发表了评论,这不符合评论部分的正确用法吗?@PopoFibo在评论中也是skip。在代码中有一个中断,是的。根据提问者的说法,任务是由文字设定的,代码不正确。@Gangnus sir yes sir:)这将很好地工作。。。不过,我插入了一个测试buf.isEmpty()来跳过它,如果它不存在,则不会捕获任何数据…@erwin当然。通常的做法是,在许多情况下,不同的分支在循环内和循环外进行。