SORU
8 Temmuz 2009, ÇARŞAMBA


Bir ters sırada Java'da her döngü için ne yapabilirim?

Tersten bir Liste aracılığıyla çalıştırmak için Java kullanarak ihtiyacım var.

Yani bu ileri gelmez:

for(String string: stringList){
//...do something
}

Bir yolu tersten kullanarak bu stringList yineleme varher biri içinsözdizimi?

Tersten bir listesini yineleme için nasıl biliyorum, ama bunu yapmak için nasıl merak aşkına ) bilmek ister . açıklık getirmek için: ^em>her biri içinstil.

CEVAP
8 Temmuz 2009, ÇARŞAMBA


Koleksiyonları.ters yöntem aslında orijinal listenin elemanları bu O performans ile orijinal listeye büyüklüğü açısından çok ters sırayla içine kopyalanır, yeni bir liste döndürür.

Daha etkin bir çözüm olarak, bir İterable Listenin başında ters bir görünümünü sunan bir dekoratör yazabilirsiniz. Yineleyici dekoratör tarafından döndürülen dekore listesi Listİterator ters sırayla öğeleri üzerinde yürümek için kullanır.

Örneğin:

public class Reversed<T> implements Iterable<T> {
    private final List<T> original;

    public Reversed(List<T> original) {
        this.original = original;
    }

    public Iterator<T> iterator() {
        final ListIterator<T> i = original.listIterator(original.size());

        return new Iterator<T>() {
            public boolean hasNext() { return i.hasPrevious(); }
            public T next() { return i.previous(); }
            public void remove() { i.remove(); }
        };
    }

    public static <T> Reversed<T> reversed(List<T> original) {
        return new Reversed<T>(original);
    }
}

Ve bu gibi kullanabilirsiniz:

import static Reversed.reversed;

...

List<String> someStrings = getSomeStrings();
for (String s : reversed(someStrings)) {
    doSomethingWith(s);
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TheScorpioTechno

    TheScorpioTe

    15 Aralık 2010
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006

İLGİLİ SORU / CEVAPLAR