现在,我有一个包含以下代码的程序:
while (arrayList.iterator().hasNext()) {
//value is equal to a String value
if( arrayList.iterator().next().equals(value)) {
// do something
}
}
就遍历ArrayList而言,我这样做是否正确?
我得到的错误是:
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(Unknown Source)
at main1.endElement(main1.java:244)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at main1.traverse(main1.java:73)
at main1.traverse(main1.java:102)
at main1.traverse(main1.java:102)
at main1.main(main1.java:404)
我将显示其余的代码,但内容相当广泛,如果我没有正确进行迭代,我将认为唯一的可能性是我没有ArrayList
正确初始化。
就遍历Arraylist而言,我这样做是否正确?
否:通过iterator
在每次迭代中调用两次,您将始终获得新的迭代器。
编写此循环的最简单方法是使用for-
each
构造:
for (String s : arrayList)
if (s.equals(value))
// ...
至于
java.lang.ArrayIndexOutOfBoundsException: -1
您只是试图-1
从数组中获取元素编号。计数从零开始。
问题内容: 我从下面的代码中获得,我可以找到原因。我可以成功地从csv文件读取数据,并创建一个名为课程列表的arraylist。那么我需要将其排序到一个数组列表,该数组的每个单元格都包含相同课程(名称相似的课程)的数组列表。但是当我运行它时会生成ConcurrentModificationException,我不明白为什么… 这是我的CourefileSorterclass: 问题答案: 将它们分
所有订阅操作都使用以下内容: 所有取消订阅操作都使用以下内容: 和通知者:
本文向大家介绍C++ 使用输出迭代器,包括了C++ 使用输出迭代器的使用技巧和注意事项,需要的朋友参考一下 示例 通过将输出迭代器传递给函数,可以返回相同类型的多个值。这对于一般功能(例如标准库的算法)尤其常见。 例: 用法示例:
问题内容: 编辑:感谢您的所有迅速答复。现在,我看到该作业将无效。从另一个线程,我读到Java中的迭代器比C ++中的迭代器功能强大得多。请问为什么在Java中使用迭代器?只是要替换“ for”循环?谢谢。 一些注意事项: 第二个迭代器应从第一个迭代器之后的位置开始。 我尝试从头开始遍历一个有序列表,然后在列表中找到一些对象,这些对象具有与aItr所指向的属性相似的属性。 我不介意使用两个“ fo
IM有下一个模型和集合定义: 日志记录显示,集合创建正确: {长度:15,模型:数组[15],_byId:对象,构造函数:函数,模型:函数...} 但是,当尝试迭代集合(在渲染视图方法中)时,显然无法正确获取当前元素: console.log,而不是返回模型,返回: {cid:“c1”,属性:对象,集合:r,_changing:false,_previousAttributes:Object…}