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

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • isupportthegosselins

    isupporttheg

    6 Aralık 2009
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010