Iterbaar om te streamen in Java

1. Overzicht

Laten we in deze korte tutorial een Java Herhaalbaar object in een Stroom en voer er enkele standaardbewerkingen op uit.

2. Converteren Herhaalbaar naar Stroom

De Herhaalbaar interface is ontworpen met het oog op algemeenheid en biedt geen enkele stroom() methode op zichzelf.

Simpel gezegd, u kunt het doorgeven aan StreamSupport.stream () methode en ontvang een Stroom van het gegeven Herhaalbaar voorbeeld.

Laten we eens kijken naar onze Herhaalbaar voorbeeld:

Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversie", "naar", "Stream");

En hier is hoe we dit kunnen converteren Herhaalbaar instantie in een Stroom:

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

Merk op dat de tweede parameter in StreamSupport.stream () bepaalt of het resulterende Stroom moet parallel of sequentieel zijn. Je zou het waar moeten zetten, voor een parallel Stroom.

Laten we nu onze implementatie testen:

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

Ook een korte kanttekening: streams zijn niet herbruikbaar, terwijl Herhaalbaar is; het biedt ook een spliterator () methode, die een java.lang.Spliterator-instantie over de elementen beschreven door het gegeven Herhaalbaar.

3. Presteren Stroom Operatie

Laten we een eenvoudige streambewerking uitvoeren:

@Test public void whenConvertedToList_thenCorrect () {Iterable iterable = Arrays.asList ("Testing", "Iterable", "conversion", "to", "Stream"); Lijstresultaat = StreamSupport.stream (iterable.spliterator (), false) .map (String :: toUpperCase) .collect (Collectors.toList ()); assertThat (resultaat, bevat ("TESTEN", "ITERABEL", "CONVERSIE", "NAAR", "STREAM")); }

4. Conclusie

Deze eenvoudige tutorial laat zien hoe je een Herhaalbaar instantie in een Stroom instantie en voer er standaardbewerkingen op uit, net zoals u dat voor elk ander zou hebben gedaan Verzameling voorbeeld.

De implementatie van alle codefragmenten is te vinden in het Github-project.