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