Ce face Arrays.stream
Arrays.stream(a) transformă un array în stream. Pentru int[] primești un IntStream, care are direct sum(), average(), max(), min(); pentru String[] sau alte obiecte primești un Stream<T> obișnuit.
Varianta cu from și to folosește doar o porțiune a array-ului. Array-ul nu se modifică; rezultatul este o valoare sau o colecție nouă. Ca să transformi un int[] în List<Integer>, scrie Arrays.stream(a).boxed().toList().
Parametri
| Parametru | Descriere |
|---|---|
array |
Array-ul sursă. |
from, to |
Porțiunea: from inclus, to exclus. |
Ce returnează
Un IntStream/LongStream/DoubleStream sau Stream<T>.
Exemple
Exemplul 1: Statistici pe un array de note
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] note = {9, 7, 10, 4, 8, 10};
System.out.println("Suma: " + Arrays.stream(note).sum());
System.out.printf("Media: %.2f%n", Arrays.stream(note).average().orElse(0));
System.out.println("Maxima: " + Arrays.stream(note).max().getAsInt());
System.out.println("Promovați: " + Arrays.stream(note).filter(n -> n >= 5).count());
System.out.println("Primele 3: " + Arrays.stream(note, 0, 3).boxed().toList());
}
}
Rezultat
Suma: 48
Media: 8.00
Maxima: 10
Promovați: 5
Primele 3: [9, 7, 10]
Exemplul 2: Un array de texte prelucrat cu Stream
import java.util.Arrays;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String[] orase = {"iași", "cluj", "sibiu", "arad", "constanța", "brașov"};
String rezultat = Arrays.stream(orase)
.filter(o -> o.length() > 4)
.map(o -> o.substring(0, 1).toUpperCase() + o.substring(1))
.sorted()
.collect(Collectors.joining(", "));
System.out.println(rezultat);
}
}
Rezultat
Brașov, Constanța, Sibiu
Greșeli frecvente
- Apelezi
max().getAsInt()pe un array gol. AruncăNoSuchElementException; foloseșteorElse. - Folosești
Stream.of(intArray)în loc deArrays.stream. Primești un stream cu un singur element (array-ul); pentruint[]foloseșteArrays.stream.
Comenzi înrudite
Collection.stream: Creează un Stream peste elementele colecției, ca să le filtrezi, transformi, sortezi sau aduni într-un rezultat.Stream: Un șir de valori prelucrate pas cu pas: filtrezi, transformi, sortezi și aduni rezultatul, fără bucle scrise de mână.Arrays.asList: Returnează o listă de mărime fixă legată de un array: poți citi și schimba elemente cu set, dar nu poți adăuga sau șterge.Stream.reduce: Combină toate elementele într-o singură valoare, aplicând o operație pas cu pas (sumă, produs, maxim, concatenare).