Sådan indsætter du element på en bestemt position i Array i Java
Hvordan indsætter man et element på en bestemt position i et array i Java? Her vil vi se eksempler på at indsætte et element i arrayet ved index. For at indsætte et element i slutningen se:- Tilføj element i array Java.
Vi kan indsætte et element på en bestemt position på to forskellige måder,
a) ved hjælp af et nyt array
b) ved hjælp af ArrayList.
Eksempel:-
Array ={10, 20, 30, 40, 50};
Element, der skal indsættes =99;
Position =3;
Endelig resultat ={10, 20, 30, 99, 40, 50};
Indsæt element i Array ved hjælp af det nye Array i Java
I denne tilgang
a) Tag en position og nyt array-element.
b) Opret et nyt array med størrelsen n+1, hvor n er størrelsen af det oprindelige array.
c) Kopiér elementet i det oprindelige array til det nye array indtil position-1 indeks.
d) Indsæt et element ved positionsindeks
e) Kopier resterende elementer af originalt array til nyt array
f) Returner det nye 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, int position) { // create new array int temp[] = new int[arr.length+1]; // add elements to new array for (int i=0, j=0; i < temp.length; i++) { if(i == position) { temp[i] = element; } else { temp[i] = arr[j++]; } } // return array return temp; } public static void main(String[] args) { // original array int arr[] = {10, 20, 30, 40, 50}; // new element to be added int element = 99; // position to be inserted // Array index start from 0, not 1 int position = 3; // display old array System.out.println("Original array: " + Arrays.toString(arr)); // add element arr = addElement(arr, element, position); // display new array System.out.println("New array: " + Arrays.toString(arr)); } }
Output:-
Original matrix:[10, 20, 30, 40, 50]
Ny matrix:[10, 20, 30, 99, 40, 50]
Logikken til at tilføje alle elementer i det originale array og nyt element på en bestemt position kan også skrives som,
// method to add element to array and return new array public static int[] addElement(int[] arr, int element, int position) { // create new array int temp[] = new int[arr.length+1]; // add elements to new array for (int i = 0; i < temp.length; i++) { if (i < position) temp[i] = arr[i]; else if (i == position) temp[i] = element; else temp[i] = arr[i - 1]; } // return array return temp; }
Med hjælp fra ArrayList
Vi kan også gøre det samme ved at bruge ArrayList. ArrayList-klassen indeholder en indbygget metode add(position, element), som kan bruges til at indsætte et element på den angivne position. Men for dette skal vi udføre de nødvendige konverteringer.
I denne tilgang skal arrayet være af indpakningstype (heltal, dobbelt, flydende og etc.), ikke af primitive typer. Fordi samlingsklasser ikke fungerer direkte med primitive typer.
I denne tilgang kan operationerne udføres som,
a) Tag arrayet, positionen og elementet, der skal indsættes.
b) Opret en ArrayList ved at bruge det originale array.
c) Brug add(position, element)-metoden til at indsætte et element på den angivne position.
d) Konverter listen til matrixen og returner den.
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, int position) { // create ArrayList List<Integer> list = new ArrayList<Integer>(Arrays.asList(arr)); // add element at specificed position list.add(position, element); // return array return list.toArray(arr); } public static void main(String[] args) { // original array Integer arr[] = {10, 20, 30, 40, 50}; // new element to be added int element = 99; // position to be inserted // Assuming array start from 1, not 0 int position = 3; // display old array System.out.println("Original array: " + Arrays.toString(arr)); // add element arr = addElement(arr, element, position); // display new array System.out.println("New array: " + Arrays.toString(arr)); } }
Output:-
Original matrix:[10, 20, 30, 40, 50]
Ny matrix:[10, 20, 30, 99, 40, 50]
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