logo

Afegiu elements a Array en Java

Una matriu és la col·lecció de tipus similars d'elements emmagatzemats en ubicacions contigües de la memòria. El principal avantatge d'una matriu és que podem accedir aleatòriament als elements de la matriu, mentre que als elements d'una llista enllaçada no es pot accedir aleatòriament.

En Java , Arrays són tipus de dades mutables, és a dir, la mida de la matriu és fixa i no podem afegir directament un element nou a Array. Tanmateix, hi ha diverses maneres d'afegir elements a la matriu. Suposem que tenim una matriu arr i hem d'afegir-hi elements. Podem utilitzar els mètodes següents per afegir elements a arr.

  1. En crear una matriu de mida més gran que arr.
  2. Mitjançant l'ús de ArrayList
  3. Desplaçant l'element per ajustar la mida de l'arr.

Fem una ullada interna a les maneres que hem descrit.

Creació d'una matriu de mida més gran

Per afegir elements a la matriu java, podem crear una altra matriu de mida més gran i copiar tots els elements de la nostra matriu a una altra matriu i col·locar el nou valor a l'últim de la matriu acabada de crear. Tanmateix, no és una manera eficient d'afegir un element a la matriu. A l'exemple següent, s'afegeix un element 7 a la matriu arr amb l'ajuda d'una nova matriu creada newArr. Considereu l'exemple següent.

 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;>

Sortida:

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

Elements desplaçats per ajustar la mida de la matriu

En aquest mètode, afegirem els elements a l'índex especificat a la matriu. De la mateixa manera, els dos processos anteriors utilitzaran una nova matriu de destinació amb una mida més gran que la matriu original. Tanmateix, serà complicat canviar els elements de la matriu de destinació després de copiar tots els elements de la matriu original a la matriu de destinació.

En aquest mètode, farem,

  1. Creeu una matriu de destinació nova amb una mida més gran que la matriu original.
  2. Copieu tots els elements de la matriu original a la nova matriu de destinació
  3. Desplaceu els elements després de l'índex donat cap a la dreta fins que arribi al final de la matriu.
  4. Inseriu el nou element a l'índex donat.

Considereu l'exemple següent en què afegirem un valor específic a l'índex 3 donat a la matriu original utilitzant una matriu de destinació.

 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;>