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.
- Sukūrę didesnio dydžio masyvą nei arr.
- Naudodami ArrayList
- 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('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;>
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
- Sukurkite naują paskirties masyvą, kurio dydis yra didesnis nei pradinis masyvas.
- Nukopijuokite visus elementus iš pradinio masyvo į naują paskirties masyvą
- Perkelkite elementus po nurodyto indekso į dešinę, kol jis pasieks masyvo pabaigą.
- Į 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('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;>