Arrays initialiseren in Java

1. Overzicht

In deze korte tutorial gaan we de verschillende manieren zien waarop we een array kunnen initialiseren en de subtiele verschillen daartussen.

2. Eén element tegelijk

Laten we beginnen met een eenvoudige, op een lus gebaseerde methode:

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

En laten we ook kijken hoe we een multidimensionale array element voor element kunnen initialiseren:

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

3. Op het moment van aangifte

Laten we nu een array initialiseren op het moment van declaratie:

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

Bij het instantiëren van de array hoeven we het type niet op te geven:

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

Merk op dat het met deze benadering niet mogelijk is om een ​​array na de declaratie te initialiseren. Een poging om dit te doen zal resulteren in een compilatiefout.

4. Met behulp van Arrays.fill ()

De java.util.Arrays class heeft verschillende methoden met de naam vullen() die verschillende soorten argumenten accepteren en de hele array met dezelfde waarde vullen:

long array [] = nieuw long [5]; Arrays.fill (array, 30);

De methode heeft ook verschillende alternatieven die een bereik van een array op een bepaalde waarde instellen:

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

Merk op dat de methode de array, de index van het eerste element, het aantal elementen en de waarde accepteert.

5. Met behulp van Arrays.copyOf ()

De methode Arrays.copyOf () maakt een nieuwe array aan door een andere array te kopiëren. De methode kent veel overbelastingen die verschillende soorten argumenten accepteren.

Laten we een snel voorbeeld bekijken:

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

Een paar opmerkingen hier:

  • De methode accepteert de bronarray en de lengte van de te maken kopie
  • Als de lengte groter is dan de lengte van de te kopiëren array, worden de extra elementen geïnitialiseerd met hun standaardwaarden
  • Als de bronarray niet is geïnitialiseerd, wordt een NullPointerException wordt gegooid
  • Als de lengte van de bronarray negatief is, wordt een NegativeArraySizeException wordt gegooid

6. Met behulp van Arrays.setAll ()

De methode Arrays.setAll () stelt alle elementen van een array in met behulp van een generatorfunctie:

int [] array = nieuwe 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]

Als de generatorfunctie nul is, dan is a NullPointerException wordt gegooid.

7. Met behulp van ArrayUtils.clone ()

Laten we tot slot de ArrayUtils.clone () API uit Apache Commons Lang 3 - die een array initialiseert door een directe kopie van een andere array te maken:

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

Merk op dat deze methode overbelast is voor alle primitieve typen.

8. Conclusie

In dit artikel hebben we verschillende manieren onderzocht om arrays in Java te initialiseren.

Zoals altijd is de volledige versie van de code beschikbaar op GitHub.


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