Kan gentages for at streame i Java

1. Oversigt

Lad os i denne korte vejledning konvertere en Java Iterabel objekt i en Strøm og udføre nogle standardoperationer på den.

2. Konvertering Iterabel til Strøm

Det Iterabel interface er designet under hensyntagen til generalitet og giver ingen strøm() metode alene.

Kort sagt, du kan videregive det til StreamSupport.stream () metode og få en Strøm fra det givne Iterabel eksempel.

Lad os overveje vores Iterabel eksempel:

Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversion", "to", "Stream");

Og her er hvordan vi kan konvertere dette Iterabel eksempel i en Strøm:

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

Bemærk, at den anden parameter i StreamSupport.stream () bestemmer, om det resulterende Strøm skal være parallel eller sekventiel. Du skal indstille det til en parallel Strøm.

Lad os nu teste vores implementering:

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

Også en hurtig side-note - streams kan ikke genbruges, mens Iterabel er; det giver også en spliterator () metode, som returnerer en java.lang.Spliterator-forekomst over de elementer, der er beskrevet af det givne Iterabel.

3. Udfører Strøm Operation

Lad os udføre en simpel streamoperation:

@Test offentligt ugyldigt nårConvertedToList_thenCorrect () {Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversion", "to", "Stream"); Listeresultat = StreamSupport.stream (iterable.spliterator (), false) .map (String :: toUpperCase) .collect (Collectors.toList ()); assertThat (resultat, indeholder ("TESTING", "ITERABLE", "CONVERSION", "TO", "STREAM")); }

4. Konklusion

Denne enkle vejledning viser, hvordan du kan konvertere en Iterabel eksempel i en Strøm eksempel og udfør standardoperationer på det, ligesom du ville have gjort for andre Kollektion eksempel.

Implementeringen af ​​alle kodestykker findes i Github-projektet.


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