Naravno, ovdje je opširno objašnjenje o tome kako možete koristiti Javin stream collect za stvaranje ArrayList-a.
Java Stream API, predstavljen u Javi 8, pruža moćan alat za izvođenje transformacija i izračunavanja podataka na deklarativan način. Jedna uobičajena upotreba Stream API-ja je transformacija zbirke u drugu vrstu zbirke. U ovom ćemo članku pokriti konverzija Streama u ArrayList koristeći Streamovu metodu collect().
Razumijevanje Java Stream API-ja
Streamovi su dizajnirani za rad s Javinim lambda izrazima i pružaju API koji je sposoban za sekvencijalne i paralelne agregatne operacije na podacima. Na primjer, možete filtrirati nulte vrijednosti iz toka i prikupiti rezultat u ArrayList.
Streamovi se često koriste sa zbirkama, ali oni su potpuno drugačiji entitet. Za razliku od kolekcija, tokovi su dinamički izračunati na zahtjev.
Rad s tokovima uvijek je kombinacija triju stvari: izvora, operacija i operacija terminala. Pogledajmo ove koncepte primijenjene na naš problem.
Rješenje: Pretvaranje Stream u ArrayList
Stream možemo pretvoriti u ArrayList u Javi pomoću metode Stream.collect(). Koristimo metodu Collectors.toList() za prikupljanje svih elemenata toka u popis, a zatim taj popis pretvaramo u ArrayList.
Stream<String> stream = Stream.of("a", "b", "c"); ArrayList<String> result = stream.collect(Collectors.toCollection(ArrayList::new));
Objašnjenje Kodeksa
- Prvo, stvaramo a tok nizova ['a', 'b', 'c'].
- Dalje, koristimo Stream collect() metoda koji izvodi promjenjivu operaciju redukcije na elementima ovog toka. To znači da transformiramo elemente toka.
- Da bismo odredili odredišnu zbirku, koristimo se Collectors.toCollection(ArrayList::new). To znači da skupljamo elemente toka u novi ArrayList.
Konačno, dobivamo ArrayList koji sadrži elemente toka.
Javini kolektori: ključna uloga u pretvorbi toka
Javina klasa Collectors je uslužna klasa koja pruža statičke tvorničke metode za različite instance sakupljača. Ima ključnu ulogu u pretvaranju toka u različite podatkovne strukture.
Jedna od ponuđenih metoda je Collectors.toCollection(), koju možete koristiti za prikupljanje elemenata toka u bilo koju kolekciju koju želite. Ovdje nam je trebao ArrayList, pa smo koristili ArrayList::new kao dobavljača.
Ovo su ključne tehnike uključene u transformaciju Streama u ArrayList u Javi. To je dio snažnog Stream API-ja koji otvara novu paradigmu programiranja u Javi, pomičući se s tradicionalnog imperativnog pristupa na funkcionalni stil. Ova se transformacija često koristi u programiranje u stvarnom svijetu a razumijevanje kako to radi imperativ je za učinkovit razvoj Jave.