Taulukko on kokoelma samantyyppisiä elementtejä, jotka on tallennettu vierekkäisiin muistipaikkoihin. Matriisin tärkein etu on, että voimme käyttää satunnaisesti taulukon elementtejä, kun taas linkitetyn listan elementtejä ei voida käyttää satunnaisesti.
Sisään Java , Taulukot ovat muuttuvia tietotyyppejä, eli taulukon koko on kiinteä, emmekä voi suoraan lisätä uutta elementtiä Arrayiin. On kuitenkin olemassa useita tapoja lisätä elementtejä taulukkoon. Oletetaan, että meillä on taulukko arr, ja meidän on lisättävä siihen elementtejä. Voimme käyttää seuraavia menetelmiä lisätäksesi elementtejä arr:iin.
- Luomalla suurempi kokoinen taulukko kuin arr.
- Käyttämällä ArrayList
- Säädä arr:n kokoa siirtämällä elementtiä.
Katsotaanpa kuvailemiamme tapoja sisältä.
Suuremman kokoisen taulukon luominen
Jos haluat lisätä elementtejä java-taulukkoon, voimme luoda toisen suuremman taulukon ja kopioida kaikki elementit taulukostamme toiseen taulukkoon ja sijoittaa uuden arvon juuri luodun taulukon viimeiseen. Se ei kuitenkaan ole tehokas tapa lisätä elementtiä taulukkoon. Alla olevassa esimerkissä elementti 7 lisätään taulukkoon arr juuri luodun taulukon newArr avulla. Harkitse seuraavaa esimerkkiä.
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;>
Lähtö:
Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7]
Elementtien siirto taulukon koon säätämiseksi
Tässä menetelmässä lisäämme elementit määritettyyn indeksiin taulukossa. Samoin edellä mainitut kaksi prosessia käyttävät uutta kohdetaulukkoa, jonka koko on suurempi kuin alkuperäinen matriisi. On kuitenkin hankalaa siirtää kohdetaulukon elementtejä sen jälkeen, kun kaikki elementit on kopioitu alkuperäisestä taulukosta kohdetaulukkoon.
Tällä menetelmällä aiomme
- Luo uusi kohdetaulukko, jonka koko on suurempi kuin alkuperäinen matriisi.
- Kopioi kaikki elementit alkuperäisestä taulukosta uuteen kohdetaulukkoon
- Siirrä annetun indeksin jälkeisiä elementtejä oikealle, kunnes se saavuttaa taulukon loppuun.
- Lisää uusi elementti annettuun hakemistoon.
Tarkastellaan seuraavaa esimerkkiä, jossa lisäämme tietyn arvon annettuun indeksiin 3 alkuperäisessä taulukossa käyttämällä kohdetaulukkoa.
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;>