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

  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008
  • Project Mooncircle

    Project Moon

    6 Aralık 2009