Een array is de verzameling soortgelijke typen elementen die op aangrenzende locaties in het geheugen zijn opgeslagen. Het belangrijkste voordeel van een array is dat we willekeurig toegang hebben tot de array-elementen, terwijl de elementen van een gekoppelde lijst niet willekeurig toegankelijk zijn.
In Java , Arrays zijn veranderlijke gegevenstypen, d.w.z. de grootte van de array staat vast en we kunnen niet rechtstreeks een nieuw element in Array toevoegen. Er zijn echter verschillende manieren om elementen aan de array toe te voegen. Laten we aannemen dat we een array arr hebben, en dat we er elementen aan moeten toevoegen. We kunnen de volgende methoden gebruiken om elementen aan arr toe te voegen.
- Door een array groter te maken dan arr.
- Door ArrayList te gebruiken
- Door het element te verschuiven, kunt u de grootte van arr aanpassen.
Laten we eens kijken naar de manieren die we hebben beschreven.
Een grotere array maken
Om elementen aan de Java-array toe te voegen, kunnen we nog een grotere array maken en alle elementen van onze array naar een andere array kopiëren en de nieuwe waarde op de laatste plaats van de nieuw gemaakte array plaatsen. Het is echter geen efficiënte manier om een element aan de array toe te voegen. In het onderstaande voorbeeld wordt een element 7 toegevoegd aan de array arr met behulp van een nieuw gemaakte array newArr. Beschouw het volgende voorbeeld.
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('Array:'+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println('Array after adding element: '+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('Original Array: '+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;>
Uitgang:
Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7]
Elementen verschuiven om de grootte van de array aan te passen
Bij deze methode voegen we de elementen toe aan de opgegeven index in de array. Op dezelfde manier zullen de bovenstaande twee processen een nieuwe bestemmingsarray gebruiken met een grotere omvang dan de originele array. Het zal echter lastig zijn om de doelarray-elementen te verplaatsen nadat alle elementen van de originele array naar de doelarray zijn gekopieerd.
Bij deze methode zullen we,
- Maak een nieuwe doelarray met een grotere omvang dan de oorspronkelijke array.
- Kopieer alle elementen van de oorspronkelijke array naar de nieuwe doelarray
- Verschuif de elementen na de gegeven index naar rechts totdat deze het einde van de array bereiken.
- Voeg het nieuwe element in op de opgegeven index.
Beschouw het volgende voorbeeld waarin we een specifieke waarde zullen toevoegen aan de gegeven index 3 in de originele array met behulp van een bestemmingsarray.
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('Original Array: '+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;>