Java >> Java tutorial >  >> Java

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


Java tag