logo

Lägg till element till Array i Java

En array är samlingen av liknande typer av element lagrade på sammanhängande platser i minnet. Den största fördelen med en array är att vi kan komma åt arrayelementen slumpmässigt, medan elementen i en länkad lista inte kan nås slumpmässigt.

I Java , Matriser är föränderliga datatyper, dvs. storleken på arrayen är fast, och vi kan inte direkt lägga till ett nytt element i Array. Det finns dock olika sätt att lägga till element i arrayen. Låt oss anta att vi har en array arr, och vi måste lägga till element till den. Vi kan använda följande metoder för att lägga till element i arr.

  1. Genom att skapa en större array än arr.
  2. Genom att använda ArrayList
  3. Genom att flytta elementet för att justera storleken på arr.

Låt oss ta en inblick i de sätt vi har beskrivit.

Skapa en större array

För att lägga till element i java-arrayen kan vi skapa en annan större array och kopiera alla element från vår array till en annan array och placera det nya värdet på det sista i den nyskapade arrayen. Det är dock inte ett effektivt sätt att lägga till ett element i arrayen. I exemplet nedan läggs ett element 7 till arrayen arr med hjälp av en nyskapad array newArr. Betrakta följande exempel.

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

Produktion:

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

Skifta element för att justera storleken på arrayen

I den här metoden kommer vi att lägga till elementen till det angivna indexet i arrayen. På samma sätt kommer de två ovanstående processerna att använda en ny destinationsmatris med en större storlek än den ursprungliga matrisen. Det kommer dock att vara svårt att flytta destinationsmatriselementen efter att ha kopierat alla element från originalmatrisen till destinationsmatrisen.

Med denna metod kommer vi,

  1. Skapa en ny destinationsmatris med en större storlek än den ursprungliga matrisen.
  2. Kopiera alla element från den ursprungliga arrayen till den nya destinationsarrayen
  3. Flytta elementen efter det givna indexet åt höger tills det når slutet av arrayen.
  4. Infoga det nya elementet vid det givna indexet.

Betrakta följande exempel där vi lägger till ett specifikt värde vid det givna indexet 3 i den ursprungliga matrisen med hjälp av en destinationsmatris.

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