Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在列表中迭代时跳过第一项_Java - Fatal编程技术网

Java 在列表中迭代时跳过第一项

Java 在列表中迭代时跳过第一项,java,Java,我需要跳过遍历列表的第一项 for (MyClass myObject : myList) { myObject.doSomething(); } 比如: for (MyClass myObject : myList.subList(1, myList.size()) { myObject.doSomething(); } 虽然我认为如果列表中没有至少一个项,那么它可能不起作用…如果使用常规for循环,您可以这样做: int size = myList.size();

我需要跳过遍历
列表的第一项

for (MyClass myObject : myList) {
    myObject.doSomething();
}
比如:

for (MyClass myObject : myList.subList(1, myList.size()) {
       myObject.doSomething();
}

虽然我认为如果列表中没有至少一个项,那么它可能不起作用…

如果使用常规for循环,您可以这样做:

int size = myList.size();
for (int i = 1; i < size; i++) {
    myList.get(i).doSomething();
}
int size=myList.size();
对于(int i=1;i
或内联:

for (int i = 1; i < myList.size(); i++) {
    myList.get(i).doSomething();
}
for(int i=1;i
为完整起见,举一个迭代器示例:

    Iterator<MyClass> iterator = myList.iterator();
    if (iterator.hasNext()) {
        iterator.next();
    }

    while (iterator.hasNext()) {
        iterator.next().doSomething();
    }
Iterator Iterator=myList.Iterator();
if(iterator.hasNext()){
iterator.next();
}
while(iterator.hasNext()){
迭代器.next().doSomething();
}

使用循环外声明的布尔值?当然,这个答案的意图非常明确,并且比
子列表更可取,因为当
myList
为空时,它不会引发异常!每次循环调用
myList.size()
一次不是吗?@Joe是的,所以您只需在循环之前定义一个int(例如,int x=myList.size()),然后让我List.size()
只是从List类的私有实例字段中检索大小,因此肯定是以恒定时间运行的,您是否认为方法分派的性能开销的缺点超过了Jack原始代码片段所传达的清晰性的好处?