Konverzie Java IntStream

1. Úvod

V tomto rýchlom návode si prejdeme všetky možnosti týkajúce sa IntStream konverzie na iné typy.

Ako doplnok tohto tutoriálu sa odporúčajú zaujímavé čítania o boxovaní a rozbaľovaní alebo opakovaní.

2. IntStream do Pole

Začnime skúmať, ako môžeme prevádzať z an IntStream namietať na pole ints.

Pre účely tohto príkladu vygenerujme prvých 50 párnych čísel a uložme ich do výsledného poľa:

@Test public void intStreamToArray () {int [] first50EvenNumbers = IntStream.iterate (0, i -> i + 2) .limit (50) .toArray (); assertThat (first50EvenNumbers) .hasSize (50); assertThat (first50EvenNumbers [2]). isEqualTo (4); }

Najskôr vytvorme nekonečný prúd celých čísel začínajúcich na 0 a iterujúcich pridaním 2 do každého prvku. Hneď potom musíme pridať medzioperáciu limit aby sa táto operácia nejako ukončila.

Na záver použijeme ukončujúcu operáciu zbierať zhromaždiť to Prúd do poľa.

Toto je priamy spôsob generovania poľa ints.

3. IntStream do Zoznam

Poďme teraz konvertovať an IntStream do a Zoznam z Celé čísla.

V tomto prípade len na doplnenie príkladu, použijeme metódu rozsah namiesto metódy iterovať. Táto metóda vygeneruje IntStream z int 0 do int 50 (nie je súčasťou balenia, pretože je to otvorený sortiment):

@Test public void intStreamToList () {List first50IntegerNumbers = IntStream.range (0, 50) .boxed () .collect (Collectors.toList ()); assertThat (first50IntegerNumbers) .hasSize (50); assertThat (first50IntegerNumbers.get (2)). isEqualTo (2); }

V tomto príklade používame metódu rozsah. Najznámejšia časť je tu metóda škatuľkovaný, ktorý, ako už jeho názov napovedá, označí všetky int prvky v IntStream a vráti a Prúd.

Nakoniec môžeme použiť zberač na získanie zoznamu celé číslos.

4. IntStream do String

Pri našej poslednej téme preskúmajme, ako by sme sa mohli dostať a String z an IntStream.

V takom prípade vygenerujeme iba prvé 3 ints (0, 1 a 2):

@Test public void intStreamToString () {String first3numbers = IntStream.of (0, 1, 2) .mapToObj (String :: valueOf) .collect (Collectors.joining (",", "[", "]"))); assertThat (first3numbers) .isEqualTo ("[0, 1, 2]"); }

Najskôr v tomto prípade zostrojíme IntStream s konštruktérom IntStream.of (). Po absolvovaní Prúd, musíme nejako generovať a Prúd z an IntStream. Preto sme môže použiť medziprodukt mapToObj metóda to bude trvať IntStream a vráti a Prúd typu výsledného objektu mapovaného volanou metódou.

Nakoniec použijeme zberač pripájať sa to trvá a Prúd a môže pridať každý prvok z Prúd použitím oddeľovača a voliteľne predpony a prípony.

5. Závery

V tomto rýchlom výučbe sme preskúmali všetky alternatívy, keď potrebujeme previesť súbor IntStream na akýkoľvek iný typ. Prešli sme najmä príkladmi ako generovanie poľa, a Zoznama String.

A ako vždy je vzorový kód k dispozícii na GitHub.


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