logo

Tilføj elementer til Array i Java

Et array er samlingen af ​​lignende typer elementer, der er gemt på sammenhængende steder i hukommelsen. Den største fordel ved et array er, at vi kan tilfældigt få adgang til array-elementerne, hvorimod elementerne i en sammenkædet liste ikke kan tilgås tilfældigt.

I Java , Arrays er foranderlige datatyper, dvs. størrelsen af ​​arrayet er fast, og vi kan ikke direkte tilføje et nyt element i Array. Der er dog forskellige måder at tilføje elementer til arrayet. Lad os antage, at vi har en array-arr, og vi skal tilføje elementer til den. Vi kan bruge følgende metoder til at tilføje elementer til arr.

  1. Ved at skabe et større array end arr.
  2. Ved at bruge ArrayList
  3. Ved at flytte elementet for at justere størrelsen af ​​arr.

Lad os se på de måder, vi har beskrevet.

Oprettelse af et større array

For at tilføje elementer i java-arrayet kan vi oprette et andet større array og kopiere alle elementer fra vores array til et andet array og placere den nye værdi på den sidste af den nyoprettede array. Det er dog ikke en effektiv måde at tilføje et element til arrayet. I eksemplet nedenfor tilføjes et element 7 til array arr ved hjælp af en nyoprettet array newArr. Overvej følgende eksempel.

 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] 

Skift af elementer for at justere størrelsen af ​​arrayet

I denne metode vil vi tilføje elementerne til det angivne indeks i arrayet. Ligeledes vil ovenstående to processer bruge et nyt destinationsarray med en større størrelse end det originale array. Det vil dog være vanskeligt at flytte destinationsarray-elementerne efter kopiering af alle elementer fra det originale array til destinationsarray.

I denne metode vil vi,

  1. Opret en ny destinationsmatrix med en større størrelse end den oprindelige matrix.
  2. Kopier alle elementerne fra det originale array til det nye destinationsarray
  3. Skift elementerne efter det givne indeks til højre, indtil det når slutningen af ​​arrayet.
  4. Indsæt det nye element ved det givne indeks.

Overvej følgende eksempel, hvor vi tilføjer en specifik værdi ved det givne indeks 3 i det originale array ved hjælp af et destinationsarray.

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