Iterable to Stream Java

1. Áttekintés

Ebben a rövid bemutatóban alakítsunk át egy Java-t Iterálható objektum a Folyam és végezzen rajta néhány szokásos műveletet.

2. Konvertálás Iterálható nak nek Folyam

A Iterálható Az interfészt az általánosság szem előtt tartásával tervezték, és nem nyújt semmit folyam() módszer önmagában.

Egyszerűen fogalmazva átadhatja StreamSupport.stream () módszer és kap egy Folyam az adottból Iterálható példa.

Tekintsük a mi Iterálható példa:

Iterálható iterálható = Arrays.asList ("Tesztelés", "Iterálható", "konvertálás", "erre", "Áramlat");

És így alakíthatjuk ezt át Iterálható például egy Folyam:

StreamSupport.stream (iterable.spliterator (), hamis);

Ne feledje, hogy a második param StreamSupport.stream () meghatározza, hogy a kapott Folyam párhuzamosnak vagy szekvenciálisnak kell lennie. Igaznak kell lennie, párhuzamosan Folyam.

Most teszteljük megvalósításunkat:

@Test public void givenIterable_whenConvertedToStream_thenNotNull () {Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversion", "to", "Stream"); Assert.assertNotNull (StreamSupport.stream (iterable.spliterator (), hamis)); }

Ezenkívül egy gyors mellékjegyzet - a folyamok nem használhatók fel újra, míg Iterálható van; azt is biztosítja a elosztó () metódus, amely a java.lang.Spliterator példány az adott által leírt elemek fölött Iterálható.

3. Előadás Folyam Művelet

Végezzünk egy egyszerű adatfolyam-műveletet:

@Test public void whenConvertedToList_thenCorrect () {Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversion", "to", "Stream"); Lista eredménye = StreamSupport.stream (iterable.spliterator (), false) .map (String :: toUpperCase) .collect (Collectors.toList ()); assertThat (az eredmény tartalmazza ("TESZTELÉS", "ITERABLE", "CONVERSION", "TO", "STREAM")); }

4. Következtetés

Ez az egyszerű bemutató bemutatja, hogyan lehet konvertálni egy Iterálható például egy Folyam példányt, és végezzen rajta szokásos műveleteket, ugyanúgy, mint bármely más esetén Gyűjtemény példa.

Az összes kódrészlet megvalósítása megtalálható a Github projektben.


$config[zx-auto] not found$config[zx-overlay] not found