Ce face Arrays
Array-urile din Java (int[], String[]) nu au metode proprii utile: println pe un array afișează ceva ca [I@1b6d3586, iar == compară adresele. Clasa Arrays din java.util aduce uneltele care lipsesc, ca metode statice.
Cele mai folosite: toString și deepToString (afișare), sort și binarySearch (sortare și căutare), fill (umplere), copyOf și copyOfRange (copii), equals (comparare după conținut), asList (vedere de tip listă) și stream (prelucrare cu stream-uri).
Majoritatea metodelor au variante pentru fiecare tip primitiv (int[], double[], char[]…) și pentru array-uri de obiecte. Pentru liste și mulțimi, clasa echivalentă este Collections.
Ce returnează
Depinde de metodă; fiecare are pagina ei.
Exemple
Exemplul 1: Uneltele de bază pe un array de note
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] note = {7, 10, 5, 9, 8};
System.out.println("println direct începe cu [I@: " + String.valueOf(note).startsWith("[I@"));
System.out.println("toString: " + Arrays.toString(note));
Arrays.sort(note);
System.out.println("Sortate: " + Arrays.toString(note));
System.out.println("Poziția notei 9: " + Arrays.binarySearch(note, 9));
System.out.println("Suma: " + Arrays.stream(note).sum());
}
}
Rezultat
println direct începe cu [I@: true
toString: [7, 10, 5, 9, 8]
Sortate: [5, 7, 8, 9, 10]
Poziția notei 9: 3
Suma: 39
Exemplul 2: Copiere și comparare
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] orase = {"Iași", "Cluj", "Arad"};
String[] copie = Arrays.copyOf(orase, orase.length);
System.out.println("== : " + (orase == copie));
System.out.println("equals: " + Arrays.equals(orase, copie));
copie[0] = "Sibiu";
System.out.println(Arrays.toString(orase) + " vs " + Arrays.toString(copie));
}
}
Rezultat
== : false
equals: true
[Iași, Cluj, Arad] vs [Sibiu, Cluj, Arad]
Greșeli frecvente
- Afișezi un array cu
System.out.println(array). Apare tipul și un cod hash ([I@...); foloseșteArrays.toString. - Compari array-uri cu
==sau cuarray.equals(altul). Ambele verifică dacă e același obiect; foloseșteArrays.equals. - Confunzi
Arrays(pentru array-uri) cuCollections(pentru liste). Metodele au nume asemănătoare, dar primesc tipuri diferite.
Comenzi înrudite
Arrays.toString: toString transformă un array în text de forma [1, 2, 3]; deepToString face același lucru pentru matrice (array-uri de array-uri).Arrays.sort: Sortează pe loc un array: crescător pentru numere și texte sau după un Comparator pentru array-uri de obiecte.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.Arrays.copyOf: copyOf face un array nou cu primele n elemente (completând cu 0/null dacă e mai lung); copyOfRange copiază o porțiune.Collections: Clasă cu metode statice gata făcute pentru colecții: sortare, amestecare, minim și maxim, numărare, liste nemodificabile.Collection.toArray: Copiază elementele unei liste, mulțimi sau cozi într-un array nou, de tip Object[] sau de tipul ales (String[], Integer[]).