Java >> Java tutorial >  >> Java

Tilføj Element til Array i Java

I dette indlæg vil vi se, hvordan du tilføjer et element til arrayet i Java. Tilføjelse af et element til arrayet betyder at indsætte et element i slutningen af ​​arrayet. Se også:- Sådan indsætter du et element i array på en bestemt position i Java.

Vi kan løse dette problem på to måder,
a) ved at oprette et nyt array.
b) Ved at tage hjælp fra ArrayList.

Tilføj element til Array i Java ved at oprette et nyt array

I denne fremgangsmåde,
a) Opret et nyt array med n+1 størrelse, hvor n er størrelsen på det originale array, hvor et element skal tilføjes.
b) Kopier alle elementer i det originale array til det nye array.
c) Indsæt element til slutningen.
d) Returner det nye array, dvs. nu vil array-variablen, der pegede på det oprindelige array, pege på det nye array.

Lad os demonstrere det gennem et eksempel. Java-program til at tilføje et element til array i Java ved at oprette et nyt array ,

import java.util.Arrays;
public class ArrayTest {

   // method to add element to array and return new array
   public static int[] addElement(int[] arr, int element) {

      // create new array of size n+1
      int temp[] = new int[arr.length+1];
      
      // copy all existing element 
      for (int i = 0; i < arr.length; i++) {
         temp[i] = arr[i];
      }
      
      // insert last element
      temp[arr.length] = element;
      
      // return new array
      return temp;
   }

   public static void main(String[] args) {
      // original array
      int arr[] = { 30, 50, 20, 40, 10};
      
      // new element to be added
      int element = 99;
      
      // display old array
      System.out.println("Original array: " + Arrays.toString(arr));
      
      // add element 
      arr = addElement(arr, element);
      
      // display new array
      System.out.println("New array: " + Arrays.toString(arr));
   }
}

Output:-

Original matrix:[30, 50, 20, 40, 10]
Ny matrix:[30, 50, 20, 40, 10, 99]

I denne metode, for at kopiere det originale array til et nyt array, har vi brugt normal for loop, men vi kan også bruge System.arraycopy()-metoden, som er en native metode og bruger en direkte hukommelseskopi uden for Java-land. Den native metode er implementeret i platformsafhængig kode, typisk skrevet i et andet programmeringssprog såsom C, C++, FORTRAN eller assemblersprog. Arraycopy() er sandsynligvis den hurtigste måde at kopiere et array på, og det giver bedre ydeevne sammenlignet med normal array-kopiering ved hjælp af loops. Lær mere om det:- System.arraycopy()-metoden i Java

Den samme metode ved at bruge System.arraycopy() metoden kan skrives som,

// method to add element to array and return new array
public static int[] addElement(int[] arr, int element) {
    // create new array of size n+1
    int temp[] = new int[arr.length+1];
        
    // copy all existing element 
    System.arraycopy(arr, 0, temp, 0, arr.length);
        
    // insert last element
    temp[arr.length] = element;
        
    // return new array
    return temp;
}

Med hjælp fra ArrayList

I denne metode vil vi bruge ArrayList som en hjælper. Her vil operationerne blive udført som,

a) Opret en ny ArrayList med det originale array ved hjælp af Array.asList()-metoden.
b) Tilføj nyt element til listen ved hjælp af add()-metoden.
c) Konverter listen til en array ved hjælp af toArray()-metoden.

Bemærk:- I denne tilgang skal arrayet være af indpakningstype (heltal, dobbelt, flydende og etc.), ikke af primitive typer.

Lad os demonstrere det gennem et eksempel,

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTest {
   // method to add element to array and return new array
   public static Integer[] addElement(Integer[] arr, int element) {
      
      // create ArrayList with original array
      List<Integer> list = 
            new ArrayList<Integer>(Arrays.asList(arr));
      
      // add new element to arrayList
      list.add(element);
      
      // return array (after converting list to array)
      return list.toArray(arr);
   }

   public static void main(String[] args) {
      // original array
      Integer arr[] = { 30, 50, 20, 40, 10};
      
      // new element to be added
      int element = 99;
      
      // display old array
      System.out.println("Original array: " + Arrays.toString(arr));
      
      // add element 
      arr = addElement(arr, element);
      
      // display new array
      System.out.println("New array: " + Arrays.toString(arr));
   }
}

Output:-

Original matrix:[30, 50, 20, 40, 10]
Ny matrix:[30, 50, 20, 40, 10, 99]

I disse eksempler har vi brugt Arrays.toString() metoden for at vise arrayet. Metoden Arrays.toString() returnerer en strengrepræsentation af indholdet af det angivne array. Strengrepræsentationen består af en liste over arrayets elementer, omgivet af firkantede parenteser "[] " og de tilstødende elementer er adskilt af tegnene "," (et komma efterfulgt af et mellemrum). Det returnerer "null", hvis det beståede array er null. Lær mere:- Arrays.toString()-metoden i Java


Java tag