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 benceStream
bir kez dahaIterator
gibi kullanılabilecek bir şey ise.Eğer
Stream
varolan koduException
bir atarIterable
aldığında şaşırmış olabilirIterable
genişletilmiş ikinci kezfor (element : iterable)
.
Bunu Paylaş:
Neden Java'In Yineleyici bir İter...
Neden bir dizi İterable için atanabili...
Neden İterable<T> akışı sağlar()...
Neden HttpServlet seri hale getirilebi...
Neden't Numaralandırma İterable d...