logo

Přidejte prvky do pole v Javě

Pole je kolekce podobných typů prvků uložených na souvislých místech v paměti. Hlavní výhodou pole je, že k prvkům pole můžeme přistupovat náhodně, zatímco k prvkům propojeného seznamu nelze přistupovat náhodně.

v Jáva , Pole jsou proměnlivé datové typy, tj. velikost pole je pevná a nemůžeme přímo přidat nový prvek do pole. Existují však různé způsoby, jak přidat prvky do pole. Předpokládejme, že máme pole arr a potřebujeme do něj přidat prvky. K přidání prvků do arr můžeme použít následující metody.

  1. Vytvořením pole větší velikosti než arr.
  2. Pomocí ArrayList
  3. Posunutím prvku upravíte velikost arr.

Pojďme se blíže podívat na způsoby, které jsme popsali.

Vytvoření pole větší velikosti

Chcete-li přidat prvky do pole java, můžeme vytvořit další pole větší velikosti a zkopírovat všechny prvky z našeho pole do jiného pole a umístit novou hodnotu na poslední z nově vytvořeného pole. Není to však efektivní způsob, jak přidat prvek do pole. V níže uvedeném příkladu je prvek 7 přidán do pole arr pomocí nově vytvořeného pole newArr. Zvažte následující pří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ýstup:

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

Posouvání prvků pro úpravu velikosti pole

V této metodě přidáme prvky do zadaného indexu v poli. Stejně tak výše uvedené dva procesy použijí nové cílové pole s větší velikostí než původní pole. Bude však složité přesunout prvky cílového pole po zkopírování všech prvků z původního pole do cílového pole.

Při této metodě budeme

  1. Vytvořte nové cílové pole s větší velikostí než původní pole.
  2. Zkopírujte všechny prvky z původního pole do nového cílového pole
  3. Posouvejte prvky za daným indexem doprava, dokud nedosáhne konce pole.
  4. Vložte nový prvek na daný index.

Zvažte následující příklad, ve kterém přidáme konkrétní hodnotu na daném indexu 3 v původním poli pomocí cílového pole.

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