Initialisering af arrays i Java

1. Oversigt

I denne hurtige vejledning vil vi se de forskellige måder, hvorpå vi kan initialisere et array og de subtile forskelle mellem disse.

2. Et element ad gangen

Lad os starte med en enkel, loop-baseret metode:

for (int i = 0; i <array.length; i ++) {array [i] = i + 2; }

Og lad os også se, hvordan vi kan initialisere et flerdimensionelt array et element ad gangen:

for (int i = 0; i <2; i ++) {for (int j = 0; j <5; j ++) {array [i] [j] = j + 1; }}

3. På tidspunktet for erklæringen

Lad os nu initialisere en matrix på erklæringstidspunktet:

String array [] = new String [] {"Toyota", "Mercedes", "BMW", "Volkswagen", "Skoda"};

Mens vi indstiller arrayet, behøver vi ikke specificere dets type:

int array [] = {1, 2, 3, 4, 5};

Bemærk, at det ikke er muligt at initialisere en matrix efter erklæringen ved hjælp af denne tilgang. Et forsøg på at gøre det vil resultere i en kompileringsfejl.

4. Brug Arrays. Udfyld ()

Det java.util.Arrays klasse har flere navngivne metoder fylde() som accepterer forskellige typer argumenter og udfylder hele arrayet med den samme værdi:

lang matrix [] = ny lang [5]; Arrays.fill (array, 30);

Metoden har også flere alternativer, der indstiller en række af en matrix til en bestemt værdi:

int array [] = ny int [5]; Arrays.fill (array, 0, 3, -50);

Bemærk, at metoden accepterer arrayet, indekset for det første element, antallet af elementer og værdien.

5. Brug Arrays.copyOf ()

Metoden Arrays.copyOf () opretter et nyt array ved at kopiere et andet array. Metoden har mange overbelastninger, der accepterer forskellige typer argumenter.

Lad os se et hurtigt eksempel:

int array [] = {1, 2, 3, 4, 5}; int [] copy = Arrays.copyOf (array, 5);

Et par noter her:

  • Metoden accepterer kildearrayet og længden af ​​den kopi, der skal oprettes
  • Hvis længden er større end længden af ​​det array, der skal kopieres, initialiseres de ekstra elementer ved hjælp af deres standardværdier
  • Hvis kildearrayet ikke er initialiseret, så a NullPointerException bliver kastet
  • Hvis kildearraylængden er negativ, så er a NegativeArraySizeException kastes

6. Brug Arrays.setAll ()

Metoden Arrays.setAll () indstiller alle elementer i et array ved hjælp af en generatorfunktion:

int [] array = new int [20]; Arrays.setAll (array, p -> p> 9? 0: p); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Hvis generatorfunktionen er null, så er a NullPointerException kastes.

7. Brug ArrayUtils.clone ()

Lad os endelig bruge ArrayUtils.clone () API ud af Apache Commons Lang 3 - som initialiserer en matrix ved at oprette en direkte kopi af en anden matrix:

char [] array = ny char [] {'a', 'b', 'c'}; char [] copy = ArrayUtils.clone (array);

Bemærk, at denne metode er overbelastet for alle primitive typer.

8. Konklusion

I denne artikel har vi undersøgt forskellige måder at initialisere arrays i Java på.

Som altid er den fulde version af koden tilgængelig på GitHub.


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