SORU
7 EKİM 2013, PAZARTESİ


Anlayış Spliterator, Toplayıcı ve Java 8'de Akış

Sorun Java Stream arabirim özellikle Spliterator Collector arabirimleri ile bir ilgisi yoktur nerede 8, anlayış yaşıyorum. Benim sorunum sadece henüz Spliterator Collector arabirimleri anlayamıyor ve sonuç olarak Stream arayüz benim için hala biraz belirsiz.

Tam olarak Spliterator Collector nedir ve bunları nasıl kullanabilirim? Spliterator Collector (ve muhtemelen bu süreçte Stream benim kendi benim kendi yazmak için hazırım, ben değil, ne yapmalıyım?

Bazı örnekler web etrafında dağınık okudum, ama burada her şey hala yeni ve değişikliklere tabi olduğundan, örnekler ve öğreticiler hala çok seyrek.

CEVAP
7 EKİM 2013, PAZARTESİ


Neredeyse kesinlikle hiç bir kullanıcı olarak Spliterator ile başa çıkmak için olmalıdır; yalnızca Collection tür kendini ifade ve eğer gerekli olmalıdırayrıcaisteyen onlara parallelized işlemleri optimize etmek için.

Asıl önemli olan, bir Spliterator yol işletim elementler üzerinde bir koleksiyon bir şekilde kolay ayırın parçası toplama, örneğin olduğun için parallelizing ve bir iş parçacığı için iş üzerinde bir parça toplama, bir iş parçacığı için iş diğer bir parçası vb.

Aslında hiç bu tür bir değişken için 15 ** tasarruf değerleri, ya da olmalıdır. Stream gibi bir Iterator işte bu tek seferlik bir kullanım nesnesi olacak hemen hemen her zaman kullanımda akıcı bir zincir gibi Javadoc örnek:

int sum = widgets.stream()
                  .filter(w -> w.getColor() == RED)
                  .mapToInt(w -> w.getWeight())
                  .sum();

Collector "" işlemi a la/azaltmak; özellikle, paralellik ve sonuçlandırma adımları desteklemek gerekiyor. göster azaltmak en genelleştirilmiş, soyut mümkün sürümüdür Collectors örnekler:

  • toplamak, Collectors.reducing(0, (x, y) -> x y) ör
  • StringBuilder ekleme, örneğin Collectors.of(StringBuilder::new, StringBuilder::append, StringBuilder::append, StringBuilder::toString)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • fufko

    fufko

    27 ŞUBAT 2006
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009

İLGİLİ SORU / CEVAPLAR