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

  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • TheRightTire

    TheRightTire

    14 EKİM 2009
  • wowchick16

    wowchick16

    17 Mart 2007