SORU
21 Kasım 2013, PERŞEMBE


Neden Stream<T> not İterable<T> uyguluyor?

Java 8 dersimiz var ilginç bir yöntemi var Stream<T>,

Iterator<T> iterator()

Bu arabirim uygulamak için beklediğiniz tam olarak bu yöntemi gerektirir Iterable<T>, ama durum öyle değil.

Bir Dere, bir foreach döngü kullanarak yinelemek istiyorum, gibi bir şey yapmak zorundayım

public static Iterable<T> getIterable(Stream<T> s) {
    return new Iterable<T> {
        @Override
        public Iterator<T> iterator() {
            return s.iterator();
        }
    };
}

for (T element : getIterable(s)) { ... }

Bir şey mi kaçırıyorum?

CEVAP
21 Kasım 2013, PERŞEMBE


Zaten aynısını insanlar on the mailing list fonksiyonu var. Ana nedeni Akışı olmamakla birlikte İterable de yeniden iterable bir anlam vardır.

Ana nedeni Iterable tekrar kullanılabilirlik anlamına gelir bence Stream bir kez daha Iterator gibi kullanılabilecek bir şey ise.

Eğer Stream varolan kodu Exception bir atar Iterable aldığında şaşırmış olabilir Iterable genişletilmiş ikinci kez for (element : iterable).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Madeon

    Madeon

    31 Ocak 2010
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011