logo

Fügen Sie Elemente zum Array in Java hinzu

Ein Array ist die Sammlung ähnlicher Elementtypen, die an zusammenhängenden Stellen im Speicher gespeichert sind. Der Hauptvorteil eines Arrays besteht darin, dass wir zufällig auf die Array-Elemente zugreifen können, während auf die Elemente einer verknüpften Liste kein zufälliger Zugriff möglich ist.

In Java , Arrays sind veränderliche Datentypen, d. h. die Größe des Arrays ist fest und wir können nicht direkt ein neues Element im Array hinzufügen. Es gibt jedoch verschiedene Möglichkeiten, dem Array Elemente hinzuzufügen. Nehmen wir an, wir haben ein Array arr und müssen ihm Elemente hinzufügen. Wir können die folgenden Methoden verwenden, um Elemente zu arr hinzuzufügen.

  1. Durch Erstellen eines größeren Arrays als arr.
  2. Durch die Verwendung von ArrayList
  3. Durch Verschieben des Elements können Sie die Größe von arr anpassen.

Werfen wir einen Blick hinter die Kulissen der von uns beschriebenen Wege.

Erstellen eines größeren Arrays

Um Elemente zum Java-Array hinzuzufügen, können wir ein weiteres, größeres Array erstellen, alle Elemente aus unserem Array in ein anderes Array kopieren und den neuen Wert am Ende des neu erstellten Arrays platzieren. Es ist jedoch keine effiziente Möglichkeit, dem Array ein Element hinzuzufügen. Im folgenden Beispiel wird mithilfe eines neu erstellten Arrays newArr ein Element 7 zum Array arr hinzugefügt. Betrachten Sie das folgende Beispiel.

 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = {1,2,3,4,5,6}; int n = arr.length; int newArr[] = new int[n+1]; int value = 7; System.out.println(Arrays.toString(arr)); for(int i = 0; i<n; i++) { newarr[i]="arr[i];" } newarr[n]="value;" system.out.println(arrays.tostring(newarr)); < pre> <h3>Using ArrayList</h3> <p>We can use <a href="/java-arraylist">ArrayList</a> as the intermediate structure and add the elements into the ArrayList using the add () method. ArrayList is a data structure that allows us to dynamically add elements. However, we can convert the ArrayList to the array by using the toArray() method. Hence this process involves the following steps.</p> <ol class="points"> <li>Convert Array into ArrayList using asList() method.</li> <li>Add elements into the array list using the add() method.</li> <li>Convert the ArrayList again to the array using the toArray() method.</li> </ol> <p>Consider the following example.</p> <pre> import java.util.ArrayList; import java.util.Arrays; public class JavaAddElementUsingList { public static void main(String[] args) { // TODO Auto-generated method stub Integer arr[] = {1,2,3,4,5,6}; System.out.println(&apos;Array:&apos;+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println(&apos;Array after adding element: &apos;+Arrays.toString(arr)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] </pre> <h3>Shifting elements to adjust the size of the array</h3> <p>In this method, we will add the elements to the specified index in the array. Likewise, the above two processes will use a new destination array with a larger size than the original array. However, it will be tricky to shift the destination array elements after copying all elements from the original array to destination array.</p> <p>In this method, we will,</p> <ol class="points"> <li>Create a new destination array with a larger size than the original array.</li> <li>Copy all the elements from the original array to the new destination array</li> <li>Shift the elements after the given index to the right until it reaches the end of the array.</li> <li>Insert the new element at the given index.</li> </ol> <p>Consider the following example in which we will add a specific value at the given index 3 in the original array using a destination array.</p> <pre> import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println('array after adding value: '+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;></pre></n;>

Ausgabe:

 Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] 

Elemente verschieben, um die Größe des Arrays anzupassen

Bei dieser Methode fügen wir die Elemente zum angegebenen Index im Array hinzu. Ebenso verwenden die beiden oben genannten Prozesse ein neues Zielarray, das größer als das ursprüngliche Array ist. Es wird jedoch schwierig sein, die Elemente des Zielarrays zu verschieben, nachdem alle Elemente vom ursprünglichen Array in das Zielarray kopiert wurden.

Bei dieser Methode werden wir

  1. Erstellen Sie ein neues Zielarray mit einer größeren Größe als das ursprüngliche Array.
  2. Kopieren Sie alle Elemente aus dem ursprünglichen Array in das neue Zielarray
  3. Verschieben Sie die Elemente nach dem angegebenen Index nach rechts, bis das Ende des Arrays erreicht ist.
  4. Fügen Sie das neue Element am angegebenen Index ein.

Betrachten Sie das folgende Beispiel, in dem wir mithilfe eines Zielarrays einen bestimmten Wert am angegebenen Index 3 im ursprünglichen Array hinzufügen.

 import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println(\'array after adding value: \'+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;>