En matrise er samlingen av lignende typer elementer lagret på sammenhengende steder i minnet. Den største fordelen med en matrise er at vi kan få tilgang til matriseelementene tilfeldig, mens elementene i en koblet liste ikke kan fås tilfeldig.
I Java , Matriser er mutbare datatyper, det vil si at størrelsen på arrayen er fast, og vi kan ikke direkte legge til et nytt element i Array. Det er imidlertid forskjellige måter å legge til elementer i matrisen. La oss anta at vi har en array arr, og vi må legge til elementer til den. Vi kan bruke følgende metoder for å legge til elementer i arr.
- Ved å lage en større matrise enn arr.
- Ved å bruke ArrayList
- Ved å flytte elementet for å justere størrelsen på arr.
La oss se på innsiden av måtene vi har beskrevet.
Opprette en større matrise
For å legge til elementer i java-matrisen, kan vi lage en annen større matrise og kopiere alle elementene fra vår matrise til en annen matrise og plassere den nye verdien på den siste av den nyopprettede matrisen. Det er imidlertid ikke en effektiv måte å legge til et element i matrisen. I eksemplet nedenfor legges et element 7 til array arr ved hjelp av en nyopprettet array newArr. Tenk på 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('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;>
Produksjon:
Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7]
Skiftende elementer for å justere størrelsen på matrisen
I denne metoden vil vi legge til elementene til den spesifiserte indeksen i matrisen. På samme måte vil de to ovennevnte prosessene bruke en ny destinasjonsmatrise med en større størrelse enn den opprinnelige matrisen. Det vil imidlertid være vanskelig å flytte destinasjonsmatriselementene etter å ha kopiert alle elementene fra den opprinnelige matrisen til målmatrisen.
I denne metoden vil vi,
- Opprett en ny destinasjonsmatrise med en større størrelse enn den opprinnelige matrisen.
- Kopier alle elementene fra den opprinnelige matrisen til den nye destinasjonsmatrisen
- Flytt elementene etter den gitte indeksen til høyre til den når slutten av matrisen.
- Sett inn det nye elementet ved den gitte indeksen.
Tenk på følgende eksempel der vi vil legge til en spesifikk verdi ved den gitte indeksen 3 i den opprinnelige matrisen ved å bruke en destinasjonsmatrise.
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;>