logo

Pridėkite elementų į „Java“ masyvą

Masyvas yra panašių tipų elementų, saugomų gretimose atminties vietose, rinkinys. Pagrindinis masyvo privalumas yra tai, kad mes galime atsitiktinai pasiekti masyvo elementus, o susieto sąrašo elementai negali būti atsitiktinai pasiekti.

Į Java , Masyvai yra keičiami duomenų tipai, t. y. masyvo dydis yra fiksuotas, ir mes negalime tiesiogiai pridėti naujo elemento į masyvą. Tačiau yra įvairių būdų, kaip įtraukti elementus į masyvą. Tarkime, kad turime masyvą arr ir turime prie jo pridėti elementų. Norėdami pridėti elementus prie arr, galime naudoti šiuos metodus.

  1. Sukūrę didesnio dydžio masyvą nei arr.
  2. Naudodami ArrayList
  3. Perkeldami elementą, kad sureguliuotumėte arr dydį.

Pažvelkime į mūsų aprašytus būdus.

Didesnio dydžio masyvo kūrimas

Norėdami įtraukti elementus į java masyvą, galime sukurti kitą didesnio dydžio masyvą ir nukopijuoti visus elementus iš mūsų masyvo į kitą masyvą, o naują reikšmę įdėti į paskutinę naujai sukurto masyvo dalį. Tačiau tai nėra efektyvus būdas įtraukti elementą į masyvą. Žemiau pateiktame pavyzdyje elementas 7 pridedamas prie masyvo arr naudojant naujai sukurtą masyvą newArr. Apsvarstykite toliau pateiktą pavyzdį.

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

Išvestis:

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

Elementų perkėlimas masyvo dydžiui reguliuoti

Šiuo metodu elementus įtrauksime į nurodytą masyvo indeksą. Taip pat pirmiau minėti du procesai naudos naują paskirties masyvą, kurio dydis yra didesnis nei pradinis masyvas. Tačiau nukopijavus visus elementus iš pradinio masyvo į paskirties masyvą, bus sudėtinga perkelti paskirties masyvo elementus.

Taikant šį metodą, mes

  1. Sukurkite naują paskirties masyvą, kurio dydis yra didesnis nei pradinis masyvas.
  2. Nukopijuokite visus elementus iš pradinio masyvo į naują paskirties masyvą
  3. Perkelkite elementus po nurodyto indekso į dešinę, kol jis pasieks masyvo pabaigą.
  4. Į nurodytą indeksą įterpkite naują elementą.

Apsvarstykite šį pavyzdį, kuriame pradiniame masyve pridėsime konkrečią reikšmę prie nurodyto indekso 3, naudodami paskirties masyvą.

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