Moguć je prijenos struje na Javi
1. Pregled
U ovom kratkom vodiču pretvorimo Java Iterativ objekt u a Stream i izvršite neke standardne operacije na njemu.
2. Pretvaranje Iterativ do Stream
The Iterativ sučelje je dizajnirano imajući na umu općenitost i ne pruža ga stream () metoda samostalno.
Jednostavno rečeno, možete ga proslijediti StreamSupport.stream () metoda i dobiti a Stream od datog Iterativ primjer.
Razmotrimo svoje Iterativ primjer:
Iterable iterable = Arrays.asList ("Testiranje", "Iterable", "pretvorba", "u", "Stream");
I evo kako to možemo pretvoriti Iterativ primjer u Prijenos:
StreamSupport.stream (iterable.spliterator (), false);
Imajte na umu da je drugi parametar u StreamSupport.stream () određuje da li rezultirajući Stream treba biti paralelna ili sekvencijalna. Trebali biste to postaviti istinito, paralelno Stream.
Sada testirajmo našu implementaciju:
@Test javna praznina givenIterable_whenConvertedToStream_thenNotNull () {Iterable iterable = Arrays.asList ("Testiranje", "Iterable", "pretvorba", "u", "Stream"); Assert.assertNotNull (StreamSupport.stream (iterable.spliterator (), false)); }
Također, kratka napomena - potoci se ne mogu ponovno koristiti Iterativ je; ona također pruža a spliterator () metoda koja vraća a instanca java.lang.Spliterator nad elementima koje opisuje dani Iterativ.
3. Izvođenje Stream Operacija
Izvršimo jednostavnu operaciju strujanja:
@Test public void whenConvertedToList_thenCorrect () {Iterable iterable = Arrays.asList ("Testiranje", "Iterable", "pretvorba", "u", "Stream"); Rezultat popisa = StreamSupport.stream (iterable.spliterator (), false) .map (String :: toUpperCase) .collect (Collectors.toList ()); assertThat (rezultat, sadrži ("TESTIRANJE", "ITERABLO", "KONVERZIJA", "DO", "STREAM")); }
4. Zaključak
Ovaj jednostavan vodič pokazuje kako možete pretvoriti Iterativ primjer u Stream instancu i izvodite standardne operacije na njoj, baš kao što biste to učinili za bilo koju drugu Kolekcija primjer.
Implementacija svih isječaka koda može se naći u projektu Github.