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

  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012