I Java er en matrise en viktig lineær datastruktur som lar oss lagre flere verdier av samme type.
- Arrays i Java er objekter som alle andre objekter i Java-arrays implisitt arver fra klassen java.lang.Object. Dette lar deg påkalle metoder definert i Object (som toString() equals() og hashCode()).
- Matriser har en innebygd lengdeegenskap som gir antall elementer i matrisen
public class Geeks { public static void main(String[] args) { // initializing array int[] arr = {40 55 63 17 22}; // size of array int n = arr.length; // traversing array for (int i = 0; i < n; i++) System.out.print(arr[i] + ' '); } }
Produksjon
40 55 63 17 22
Nøkkelfunksjoner i Arrays
- Lagre primitiver og objekter: Java-arrayer kan inneholde både primitive typer (som int char boolean etc.) og objekter (som String Integer etc.)
- Kontinuerlig minnetildeling Når vi bruker matriser av primitive typer, lagres elementene på sammenhengende steder. For ikke-primitive typer lagres referanser til elementer på sammenhengende steder.
- Nullbasert indeksering: Det første elementet i matrisen er på indeks 0.
- Fast lengde: Etter å ha opprettet en matrise er størrelsen fast; vi kan ikke endre det.
Primitiv Array-representasjon i Java
Ikke-primitiv Array-representasjon i JavaGrunnleggende operasjon på arrays i Java
1. Erklære en matrise
Den generelle formen for array-deklarasjon er
// Metode 1:
int arr[];// Metode 2:
int[] arr;
Elementtypen bestemmer datatypen for hvert element som består av matrisen. Som en rekke heltall kan vi også lage en rekke andre primitive datatyper som char float double etc. eller brukerdefinerte datatyper (objekter av en klasse).
syreegenskaper database
Note: Det er bare hvordan vi kan lage en matrisevariabel ingen faktisk matrise eksisterer. Den forteller bare kompilatoren at denne variabelen (int Array) vil inneholde en matrise av heltallstypen.
2. Initialisering av en Array i Java
Når en matrise erklæres, opprettes bare en referanse til en matrise. Vi bruker ny for å tildele en matrise med gitt størrelse.
int arr[] = ny int[størrelse];
- Array-deklarasjon er generelt statisk, men hvis størrelsen ikke er definert, er matrisen dynamisk størrelse.
- Minne for arrays er alltid dynamisk allokert (på heap-segment) i Java. Dette er forskjellig fra C/C++ hvor minne enten kan være statisk allokert eller dynamisk allokert.
- Elementene i matrisen tildelt av new vil automatisk initialiseres til null (for numeriske typer), false (for boolesk) eller null (for referansetyper).
Array Literal i Java
kvartal i virksomhet
I en situasjon hvor størrelsen på matrisen og variablene til matrisen allerede er kjente matriseliteraler kan brukes.
// Erklærer array literal
int[] arr = ny int[]{ 12345678910 };
- Lengden på denne matrisen bestemmer lengden på den opprettede matrisen.
- Det er ikke nødvendig å skrive den nye int[]-delen i de nyeste versjonene av Java.
3. Endre et matriseelement
For å endre et element, tilordne en ny verdi til en bestemt indeks. Indeksen begynner med 0 og slutter på (total matrisestørrelse) -1.
// Endre det første elementet til 90
arr[0] = 90;123 film
4. Matriselengde
Vi kan få lengden på en matrise ved å bruke lengdeegenskapen:
// Henter lengden på matrisen
int n = arr.lengde;
5. Tilgang og oppdatering av alle matriseelementer
- Alle elementene i array kan nås ved å bruke Java for Loop.
- Hvert element i matrisen er tilgjengelig via sin indeks.
Tilgang til og oppdatering av alle matriseelementerJava-program for å illustrere å lage en matrise med heltall setter noen verdier i matrisen og skriver ut hver verdi til standardutdata
Javaclass Geeks { public static void main(String[] args) { // declares an Array of integers. int[] arr; // allocating memory for 5 integers. arr = new int[5]; // initialize the elements of the array // first to last(fifth) element arr[0] = 2; arr[1] = 4; arr[2] = 8; arr[3] = 12; arr[4] = 16; // accessing the elements of the specified array for (int i = 0; i < arr.length; i++) System.out.println('Element at index ' + i + ' : ' + arr[i]); } }
Produksjon
Element at index 0 : 2 Element at index 1 : 4 Element at index 2 : 8 Element at index 3 : 12 Element at index 4 : 16
Arrays av objekter i Java
En rekke objekter opprettes som en rekke dataelementer av primitiv type
Eksempel : Her tar vi en elevklasse og lager en array av Student med fem Student-objekter lagret i arrayet. Student-objektene må instansieres ved å bruke konstruktøren til Student-klassen, og referansene deres skal tilordnes array-elementene.
class Student { public int roll_no; public String name; Student(int roll_no String name){ this.roll_no = roll_no; this.name = name; } } public class Geeks { public static void main(String[] args){ // declares an Array of Student Student[] arr; // allocating memory for 5 objects of type Student. arr = new Student[5]; // initialize the elements of the array arr[0] = new Student(1 'aman'); arr[1] = new Student(2 'vaibhav'); arr[2] = new Student(3 'shikar'); arr[3] = new Student(4 'dharmesh'); arr[4] = new Student(5 'mohit'); // accessing the elements of the specified array for (int i = 0; i < arr.length; i++) System.out.println('Element at ' + i + ' : { ' + arr[i].roll_no + ' ' + arr[i].name+' }'); } }
Produksjon
Element at 0 : { 1 aman } Element at 1 : { 2 vaibhav } Element at 2 : { 3 shikar } Element at 3 : { 4 dharmesh } Element at 4 : { 5 mohit } Hva skjer hvis vi prøver å få tilgang til elementer utenfor matrisestørrelsen?
JVM kaster ArrayIndexOutOfBoundsException for å indikere at arrayen har blitt åpnet med en ulovlig indeks. Indeksen er enten negativ eller større enn eller lik størrelsen på en matrise.
hva er dvalemodus
Koden nedenfor viser hva som skjer hvis vi prøver å få tilgang til elementer utenfor matrisestørrelsen:
Javapublic class Geeks { public static void main(String[] args) { int[] arr = new int[4]; arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; System.out.println( 'Trying to access element outside the size of array'); System.out.println(arr[5]); } }
Produksjon:
konverter streng til int i java
Utdata av elementer utenfor matrisestørrelsenOverføring av matriser til metoder
I likhet med variabler kan vi også overføre matriser til metoder. For eksempel overfører programmet nedenfor matrisen til metodesum for å beregne summen av matrisens verdier.
Eksempel:
Javapublic class Geeks { // Driver method public static void main(String args[]) { int arr[] = { 3 1 2 5 4 }; // passing array to method m1 sum(arr); } public static void sum(int[] arr) { // getting sum of array values int sum = 0; for (int i = 0; i < arr.length; i++) sum += arr[i]; System.out.println('sum of array values : ' + sum); } }
Produksjon
sum of array values : 15
Forklaring
- Dette Java-programmet viser hvordan du overfører en matrise til en metode.
- En heltallsmatrise arr er deklarert og initialisert i hovedmetoden.
- Sum()-metoden kalles med arr som argument.
- Inne i sum()-metoden legges alle array-elementer til ved å bruke en for-løkke.
- Den endelige summen skrives deretter ut til konsollen.
Returner matriser fra metoder
Som vanlig kan en metode også returnere en matrise. For eksempel returnerer programmet nedenfor en matrise fra metode m1.
Eksempel:
Javaclass Geeks { // Driver method public static void main(String args[]) { int arr[] = m1(); for (int i = 0; i < arr.length; i++) System.out.print(arr[i] + ' '); } public static int[] m1() { // returning array return new int[] { 1 2 3 }; } }
Produksjon
1 2 3
Fordeler med Java Arrays
- Effektiv tilgang: Å få tilgang til et element ved dets indeks er raskt og har konstant tidskompleksitet O(1).
- Minnehåndtering: Arrays har fast størrelse som gjør minneadministrasjon enkel og forutsigbar.
- Dataorganisasjon: Matriser hjelper til med å organisere data på en strukturert måte som gjør det enklere å administrere relaterte elementer.
Ulemper med Java Arrays
- Fast størrelse: Når en matrise er opprettet, kan ikke størrelsen endres, noe som kan føre til minnesløsing hvis størrelsen er overvurdert eller utilstrekkelig lagring hvis den undervurderes.
- Type Homogenitet: Matriser kan bare lagre elementer av samme datatype som kan kreve ytterligere håndtering for blandede typer data.
- Innsetting og sletting: Å sette inn eller slette elementer, spesielt midt i en matrise, kan være kostbart da det kan kreve skiftende elementer.
Relaterte innlegg
- Jagged Array i Java
- For hver sløyfe i Java
- Arrays-klassen i Java