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原始代码片段所传达的清晰性的好处?