logo

Taulukot Javassa

Javassa taulukko on tärkeä lineaarinen tietorakenne, jonka avulla voimme tallentaa useita samantyyppisiä arvoja.

  • Java-taulukot ovat objekteja, kuten kaikki muutkin Java-taulukoiden objektit periytyvät implisiittisesti java.lang.Object-luokasta. Tämän avulla voit kutsua Objectissa määritettyjä menetelmiä (kuten toString() equals() ja hashCode()).
  • Matriiseilla on sisäänrakennettu pituusominaisuus, joka ilmoittaa taulukon elementtien lukumäärän
Java
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] + ' ');  } } 

Lähtö
40 55 63 17 22 

Arraysin tärkeimmät ominaisuudet

  • Säilytä primitiivit ja objektit: Java-taulukot voivat sisältää sekä primitiivityyppejä (kuten int char boolean jne.) että objekteja (kuten String Integer jne.)
  • Jatkuva muistin varaus Kun käytämme primitiivityyppisiä taulukoita, elementit tallennetaan vierekkäisiin paikkoihin. Ei-primitiivisille tyypeille nimikkeiden viittaukset tallennetaan vierekkäisiin paikkoihin.
  • Nollaperusteinen indeksointi: Taulukon ensimmäinen elementti on indeksissä 0.
  • Kiinteä pituus: Kun taulukko on luotu, sen koko on kiinteä; emme voi muuttaa sitä.
primitive_array_' title=Primitiivisen taulukon esitys Javassa update-array-element' loading='lazy' title=Ei-primitiivisen taulukon esitys Javassa

Javan taulukoiden käytön perusteet

1. Taulukon ilmoittaminen

Taulukon ilmoituksen yleinen muoto on 

// Menetelmä 1:
int arr[];



// Menetelmä 2:
int[] arr;

Elementtityyppi määrittää kunkin taulukon muodostavan elementin tietotyypin. Kuten kokonaislukutaulukko, voimme myös luoda joukon muita primitiivisiä tietotyyppejä, kuten char float double jne. tai käyttäjän määrittämiä tietotyyppejä (luokan objekteja).

nuhjuinen piste

Huomautus: Voimme vain luoda taulukkomuuttujan, jota ei ole olemassa. Se vain kertoo kääntäjälle, että tämä muuttuja (int Array) sisältää kokonaislukutyyppisen taulukon.

2. Array:n alustus Javassa

Kun taulukko ilmoitetaan, vain taulukon viite luodaan. Käytämme uutta varataksemme tietyn kokoisen joukon.

"kruskalin algoritmi"

int arr[] = uusi int[koko];

  • Array Declaration on yleensä staattinen, mutta jos kokoa ei ole määritelty, Array on dynaamisesti kokoinen.
  • Matriisimuisti varataan aina dynaamisesti (kekasegmentissä) Javassa. Tämä eroaa C/C++:sta, jossa muistia voidaan varata joko staattisesti tai dynaamisesti.
  • Uusilla allokoidut taulukon elementit alustetaan automaattisesti nollaan (numeerisille tyypeille), false (boolean) tai null (viitetyypeille).

Array Literal Javassa

Tilanteessa, jossa taulukon koko ja taulukon muuttujat ovat jo tiedossa, voidaan käyttää taulukkoliteraaaleja. 

// Taulukon julistaminen literaaliksi
int[] arr = uusi int[]{ 12345678910 };

  • Tämän taulukon pituus määrittää luodun taulukon pituuden.
  • Uusissa Java-versioissa ei tarvitse kirjoittaa uutta int[]-osaa.

3. Muuta taulukon elementtiä

Jos haluat muuttaa elementtiä, määritä uusi arvo tietylle indeksille. Indeksi alkaa 0:lla ja päättyy (kokonaiskoko)-1.

traverse-array' loading='lazy' title=

// Ensimmäisen elementin muuttaminen arvoon 90
arr[0] = 90;

10 ml oz

4. Array Length

Voimme saada taulukon pituuden pituus-ominaisuuden avulla:

// Taulukon pituuden saaminen
int n = arr.length;

5. Kaikkien taulukon elementtien käyttäminen ja päivittäminen

  • Kaikki taulukon elementit ovat käytettävissä Java for Loop -sovelluksella.
  • Jokaista taulukon elementtiä käytetään sen indeksin kautta.
Lähtö' loading='lazy' title=Kaikkien taulukon elementtien käyttö ja päivittäminen

Java-ohjelma havainnollistaa kokonaislukutaulukon luomista asettaa joitakin arvoja taulukkoon ja tulostaa jokaisen arvon vakiotulostukseen

Java
class 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]);  } } 

Lähtö
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 

Objektijoukot Javassa

Objektijoukko luodaan kuten primitiivityyppisten tietokohteiden joukko

java poikkeuksia

Esimerkki : Tässä otamme opiskelijaluokan ja luomme opiskelijataulukon, jossa on viisi opiskelijaobjektia. Student-objektit on instantoitava Student-luokan konstruktorilla ja niiden viitteet tulee liittää taulukon elementteihin.

Java
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+' }');  } } 

Lähtö
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 } 

Mitä tapahtuu, jos yritämme päästä käsiksi taulukon koon ulkopuolisiin elementteihin?

JVM heittää ArrayIndexOutOfBoundsExceptionin osoittaakseen, että taulukkoa on käytetty laittomalla indeksillä. Indeksi on joko negatiivinen tai suurempi tai yhtä suuri kuin taulukon koko.

Alla oleva koodi näyttää, mitä tapahtuu, jos yritämme käyttää taulukon koon ulkopuolisia elementtejä:

Java
public 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]);  } } 

Lähtö:

' loading='lazy' title=Matriisin koon ulkopuolella olevien elementtien tulostus

Taulukkojen siirtäminen menetelmiin

Kuten muuttujat, voimme myös välittää taulukoita menetelmille. Esimerkiksi alla oleva ohjelma siirtää taulukon menetelmän summalle laskeakseen taulukon arvojen summan.

Esimerkki:

Java
public 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);  } } 

Lähtö
sum of array values : 15 

Selitys

  • Tämä Java-ohjelma näyttää, kuinka taulukko välitetään menetelmälle.
  • Kokonaislukutaulukko arr ilmoitetaan ja alustetaan päämenetelmässä.
  • Sum()-metodia kutsutaan argumenttina arr.
  • Sum()-menetelmän sisällä kaikki taulukon elementit lisätään for-silmukalla.
  • Lopullinen summa tulostetaan sitten konsoliin.

Taulukon palauttaminen menetelmistä

Kuten tavallista, menetelmä voi myös palauttaa taulukon. Esimerkiksi alla oleva ohjelma palauttaa taulukon menetelmästä m1. 

Esimerkki:

elokuvanäyttelijä Kajal
Java
class 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 };  } } 

Lähtö
1 2 3 

Java-taulukoiden edut

  • Tehokas pääsy: Elementin löytäminen sen indeksin perusteella on nopeaa ja sen aikamonimutkaisuus on vakio O(1).
  • Muistinhallinta: Matriiseilla on kiinteä koko, mikä tekee muistinhallinnasta suoraviivaista ja ennustettavaa.
  • Tietojen organisaatio: Taulukot auttavat järjestämään tietoja jäsennellyllä tavalla, mikä helpottaa toisiinsa liittyvien elementtien hallintaa.

Java-taulukoiden haitat

  • Kiinteä koko: Kun taulukko on luotu, sen kokoa ei voi muuttaa, mikä voi johtaa muistin hukkaan, jos koko on yliarvioitu, tai riittämättömästi tallennustilaa, jos se aliarvioitiin.
  • Tyypin homogeenisuus: Taulukot voivat tallentaa vain saman tietotyypin elementtejä, mikä saattaa vaatia lisäkäsittelyä erityyppisille datalle.
  • Lisääminen ja poistaminen: Elementtien lisääminen tai poistaminen erityisesti taulukon keskeltä voi olla kallista, koska se voi vaatia elementtien siirtämistä.

Aiheeseen liittyvät viestit

  • Jagged Array Javassa
  • Jokaiselle silmukalle Javassa
  • Arrays-luokka Javassa