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
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ä.
Primitiivisen taulukon esitys Javassa
Ei-primitiivisen taulukon esitys JavassaJavan 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.
// 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.
Kaikkien taulukon elementtien käyttö ja päivittäminenJava-ohjelma havainnollistaa kokonaislukutaulukon luomista asettaa joitakin arvoja taulukkoon ja tulostaa jokaisen arvon vakiotulostukseen
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]); } }
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.
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ä:
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]); } }
Lähtö:
Matriisin koon ulkopuolella olevien elementtien tulostusTaulukkojen 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:
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); } }
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ä KajalJava
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