logo

Pridajte prvky do poľa v jazyku Java

Pole je zbierka podobných typov prvkov uložených na súvislých miestach v pamäti. Hlavnou výhodou poľa je, že k prvkom poľa môžeme pristupovať náhodne, zatiaľ čo k prvkom prepojeného zoznamu nie je možné pristupovať náhodne.

In Java , Polia sú meniteľné dátové typy, t. j. veľkosť poľa je pevná a do poľa nemôžeme priamo pridať nový prvok. Existujú však rôzne spôsoby pridania prvkov do poľa. Predpokladajme, že máme pole arr a potrebujeme doň pridať prvky. Na pridávanie prvkov do arr môžeme použiť nasledujúce metódy.

  1. Vytvorením poľa väčšej veľkosti ako arr.
  2. Pomocou ArrayList
  3. Posunutím prvku upravíte veľkosť arr.

Pozrime sa vnútorne na spôsoby, ktoré sme opísali.

Vytvorenie poľa väčšej veľkosti

Ak chcete pridať prvky do poľa java, môžeme vytvoriť ďalšie pole väčšej veľkosti a skopírovať všetky prvky z nášho poľa do iného poľa a umiestniť novú hodnotu na poslednú z novovytvoreného poľa. Nie je to však efektívny spôsob pridania prvku do poľa. V nižšie uvedenom príklade sa prvok 7 pridá do poľa arr pomocou novo vytvoreného poľa newArr. Zvážte nasledujúci príklad.

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

Výkon:

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

Posúvanie prvkov na úpravu veľkosti poľa

V tejto metóde pridáme prvky do zadaného indexu v poli. Podobne dva vyššie uvedené procesy použijú nové cieľové pole s väčšou veľkosťou ako pôvodné pole. Bude však zložité presunúť prvky cieľového poľa po skopírovaní všetkých prvkov z pôvodného poľa do cieľového poľa.

Pri tejto metóde budeme

  1. Vytvorte nové cieľové pole s väčšou veľkosťou ako pôvodné pole.
  2. Skopírujte všetky prvky z pôvodného poľa do nového cieľového poľa
  3. Posúvajte prvky za daným indexom doprava, kým nedosiahne koniec poľa.
  4. Vložte nový prvok na daný index.

Uvažujme o nasledujúcom príklade, v ktorom pridáme konkrétnu hodnotu na danom indexe 3 do pôvodného poľa pomocou cieľového poľa.

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