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

  • Amena

    Amena

    15 Kasım 2006
  • cyriak

    cyriak

    29 Mart 2006
  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011