Ngay bây giờ, tôi có một chương trình có chứa một đoạn mã mà trông như thế này:ArrayIndexOutOfBoundsException khi sử dụng iterator của ArrayList
while (arrayList.iterator().hasNext()) {
//value is equal to a String value
if(arrayList.iterator().next().equals(value)) {
// do something
}
}
Tôi có làm đúng đó, như xa như lặp lại qua ArrayList đi?
Các lỗi tôi nhận được là:
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)
tôi sẽ hiển thị phần còn lại của mã này, nhưng nó khá rộng, và nếu tôi không làm lặp đi lặp lại một cách chính xác, tôi sẽ giả định khả năng duy nhất là Tôi không khởi tạo đúng cách ArrayList
.
Trong java 8, bạn có thể sử dụng phương thức 'forEach': http://stackoverflow.com/questions/16635398/java-8-iterable-foreach-vs-foreach-loop –