logo

Adăugați elemente la Array în Java

O matrice este o colecție de tipuri similare de elemente stocate în locații învecinate în memorie. Principalul avantaj al unei matrice este că putem accesa aleatoriu elementele matricei, în timp ce elementele unei liste legate nu pot fi accesate aleatoriu.

În Java , Matrice sunt tipuri de date mutabile, adică dimensiunea matricei este fixă ​​și nu putem adăuga direct un element nou în Array. Cu toate acestea, există diferite moduri de a adăuga elemente la matrice. Să presupunem că avem o matrice arr și trebuie să îi adăugăm elemente. Putem folosi următoarele metode pentru a adăuga elemente la arr.

  1. Prin crearea unei matrice de dimensiuni mai mari decât arr.
  2. Prin utilizarea ArrayList
  3. Prin deplasarea elementului pentru a ajusta dimensiunea arr.

Să aruncăm o privire din interior asupra modurilor pe care le-am descris.

Crearea unei matrice de dimensiuni mai mari

Pentru a adăuga elemente în matricea java, putem crea o altă matrice de dimensiune mai mare și putem copia toate elementele din matricea noastră într-o altă matrice și plasăm noua valoare la ultima matrice nou creată. Cu toate acestea, nu este o modalitate eficientă de a adăuga un element la matrice. În exemplul de mai jos, un element 7 este adăugat la matricea arr cu ajutorul unui tablou nou creat newArr. Luați în considerare următorul exemplu.

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

Ieșire:

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

Schimbarea elementelor pentru a ajusta dimensiunea matricei

În această metodă, vom adăuga elementele la indexul specificat în matrice. De asemenea, cele două procese de mai sus vor folosi o nouă matrice de destinație cu o dimensiune mai mare decât matricea originală. Cu toate acestea, va fi dificil să mutați elementele matricei de destinație după ce ați copiat toate elementele din matricea originală în matricea de destinație.

În această metodă, vom,

  1. Creați o nouă matrice de destinație cu o dimensiune mai mare decât matricea originală.
  2. Copiați toate elementele din matricea originală în noua matrice de destinație
  3. Deplasați elementele după indexul dat la dreapta până când ajunge la sfârșitul matricei.
  4. Introduceți noul element la indexul dat.

Luați în considerare următorul exemplu în care vom adăuga o valoare specifică la indexul dat 3 în tabloul original folosind o matrice destinație.

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