Akış Java 8 ile İLGİLENİYORUZ kullanarak İterable dönüştürmek
java.lang.Iterable<T>
veren bir arayüzü var.
Bu sonucu değiştirmek için Java 8 Stream API kullanarak istiyorum.
İterable ise "". Stream
Akarsu (Liste için İterable dönüştürmeden) nasıl daha iyi bir fikir?
CEVAP
Daha kolay ve daha iyi bir sonuç alır doğrudan spliteratorUnknownSize
kullanarak daha iyi bir cevap var. Iterable
spliterator()
bir yöntemi var, sadece senin spliterator almak için kullanmalısınız. En kötü durumda, aynı kodu (varsayılan uygulaması kullanır spliteratorUnknownSize
), ama daha yaygın bir durum, nerede Iterable
bir koleksiyon daha, bir daha spliterator, ve bu nedenle daha iyi akış performansı (hatta belki de iyi bir paralellik.) Ayrıca daha az kodu:
StreamSupport.stream(iterable.spliterator(), false)
.filter(...)
.moreStreamOps(...);
Gördüğünüz gibi, bir İterable (Why does Iterable<T> not provide stream() and parallelStream() methods?) bir akış almak çok acı verici değildir.
Bir bayt dizisi Java kullanarak bir he...
Java Dizi İterable dönüştürmek...
Java kullanarak.net.Ateş ve işlemek iç...
Java ile bir numaralama için bir Dize ...
Java nasıl bir dize bir karakter dönüş...