Masīvs ir līdzīga veida elementu kolekcija, kas glabājas blakus esošās atmiņas vietās. Galvenā masīva priekšrocība ir tā, ka mēs varam nejauši piekļūt masīva elementiem, savukārt saistītā saraksta elementiem nevar piekļūt nejauši.
In Java , Masīvi ir mainīgi datu tipi, t.i., masīva lielums ir fiksēts, un mēs nevaram tieši pievienot jaunu elementu masīvā. Tomēr ir dažādi veidi, kā masīvam pievienot elementus. Pieņemsim, ka mums ir masīvs arr, un mums ir jāpievieno tam elementi. Mēs varam izmantot šādas metodes, lai pievienotu elementus arr.
- Izveidojot lielāka izmēra masīvu nekā arr.
- Izmantojot ArrayList
- Pārbīdot elementu, lai pielāgotu arr izmēru.
Apskatīsim mūsu aprakstītos veidus.
Lielāka izmēra masīva izveide
Lai java masīvam pievienotu elementus, mēs varam izveidot citu lielāka izmēra masīvu un pārkopēt visus elementus no mūsu masīva uz citu masīvu un ievietot jauno vērtību jaunizveidotā masīva pēdējā vietā. Tomēr tas nav efektīvs veids, kā masīvam pievienot elementu. Zemāk esošajā piemērā masīvam arr tiek pievienots elements 7 ar jaunizveidota masīva newArr palīdzību. Apsveriet šādu piemēru.
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('Array:'+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println('Array after adding element: '+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('Original Array: '+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;>
Izvade:
Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7]
Elementu maiņa, lai pielāgotu masīva lielumu
Izmantojot šo metodi, mēs pievienosim elementus norādītajam indeksam masīvā. Tāpat iepriekšminētajos divos procesos tiks izmantots jauns mērķa masīvs ar lielāku izmēru nekā sākotnējais masīvs. Tomēr būs sarežģīti pārvietot mērķa masīva elementus pēc visu elementu kopēšanas no sākotnējā masīva uz mērķa masīvu.
Izmantojot šo metodi, mēs
- Izveidojiet jaunu mērķa masīvu ar lielāku izmēru nekā sākotnējais masīvs.
- Kopējiet visus elementus no sākotnējā masīva uz jauno mērķa masīvu
- Pārvietojiet elementus aiz dotā indeksa pa labi, līdz tas sasniedz masīva beigas.
- Ievietojiet jauno elementu dotajā rādītājā.
Apsveriet šādu piemēru, kurā mēs pievienosim noteiktu vērtību sākotnējā masīvā norādītajam indeksam 3, izmantojot mērķa masīvu.
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('Original Array: '+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;>