SORU
14 Temmuz 2011, PERŞEMBE


ArrayİndexOutOfBoundsException bir ArrayList zaman yineleme

Şimdi, bu gibi görünen bir program kod parçası içeren var:

while (arrayList.iterator().hasNext()) {
     //value is equal to a String value
     if( arrayList.iterator().next().equals(value)) {
          // do something 
     }
}

Bu doğru yapıyor, bildiğim kadarıyla ArrayList geçer yineleme mıyım?

Alıyorum hata:

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)

Göstermek istiyorum gerisini kodu, ama oldukça geniş, ve eğer ben yapmıyorum tekerrür doğru, ben ki, bir ilişkinin tek yolu bu ben değilim başlatılıyor ArrayList düzgün.

CEVAP
19 EYLÜL 2012, ÇARŞAMBA


Kabul cevabı genellikle en iyi çözümdür ve kesinlikle daha kolay olduğunu kabul etmekle birlikte, kimse yineleyici uygun kullanım görüntülenen fark ettim. Burada hızlı bir örnek:

Iterator<Object> it = arrayList.iterator();
while(it.hasNext())
{
    Object obj = it.next();
    //Do something with obj
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • Michael Neal

    Michael Neal

    2 Mayıs 2009