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

  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • K-391

    K-391

    23 EKİM 2012
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013