Tablice w Java

Czym jest Java Tablice?

Java Szyk to bardzo powszechny typ struktury danych, ktรณry zawiera wszystkie wartoล›ci danych tego samego typu. Elementy danych umieszczone w tablicy nazywane sฤ… elementami, a pierwszy element tablicy zaczyna siฤ™ od indeksu zerowego. Tablice dziedziczฤ… klasฤ™ obiektรณw i implementujฤ… interfejsy, ktรณre moลผna serializowaฤ‡ i klonowaฤ‡. Moลผemy przechowywaฤ‡ prymitywne wartoล›ci lub obiekty w tablicy.

Krรณtko mรณwiฤ…c, jest to konstrukcja programistyczna, ktรณra pomaga to zastฤ…piฤ‡

x0=0;
x1=1;
x2=2;
x3=3;
x4=4;
x5=5;

z tym โ€ฆ

x[0]=0;
x[1]=1;
x[2]=2;
x[3]=3;
x[4]=4;
x[5]=5;

pomaga to w tym, ลผe zmienna moลผe w ล‚atwy sposรณb odwoล‚ywaฤ‡ siฤ™ do indeksu (liczby w nawiasie []). looping.

for(count=0; count<5; count++) {
     System.out.println(x[count]);
   }

Typy tablic w Java

Istniejฤ… dwa typy tablic.

  1. Tablica jednowymiarowa
  2. Tablica wielowymiarowa

Zmienne tablicowe

Uลผycie tablicy w programie to a 3-etapowy proces -

1) Deklarowanie tablicy

2) Konstruowanie tablicy

3) Zainicjuj tablicฤ™

1) Deklarowanie tablicy

Skล‚adnia

<elementType>[] <arrayName>;

or

 <elementType> <arrayName>[];

Przykล‚ad:

int intArray[];
 // Defines that intArray is an ARRAY variable which will store integer values
int []intArray;

2) Konstruowanie tablicy

 arrayname = new dataType[]

Przykล‚ad:

intArray = new int[10]; // Defines that intArray will store 10 integer values

Deklaracja i konstrukcja poล‚ฤ…czone

int intArray[] = new int[10];

3) Zainicjuj tablicฤ™

intArray[0]=1; // Assigns an integer value 1 to the first element 0 of the array

intArray[1]=2; // Assigns an integer value 2 to the second element 1 of the array

Deklarowanie i inicjowanie tablicy

[]  = {};
Przykล‚ad:
 int intArray[] = {1, 2, 3, 4};
// Initilializes an integer array of length 4 where the first element is 1 , second element is 2 and so on.

Pierwszy program tablicowy

Krok 1) Skopiuj poniลผszy kod do edytora.

class ArrayDemo{
     public static void main(String args[]){
        int array[] = new int[7];
        for (int count=0;count<7;count++){
           array[count]=count+1;
       }
       for (int count=0;count<7;count++){
           System.out.println("array["+count+"] = "+array[count]);
       }
      //System.out.println("Length of Array  =  "+array.length);
      // array[8] =10;
      }
}

Krok 2) Zapisz, skompiluj i uruchom kod. Obserwuj wynik

Oczekiwany wynik:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

Krok 3) Jeล›li x jest odwoล‚aniem do tablicy, x.dล‚ugoล›ฤ‡ poda dล‚ugoล›ฤ‡ tablicy.

Odkomentuj wiersz nr 10. Zapisz, skompiluj i uruchom kod. Obserwuj wynik

Length of Array  =  7

Krok 4) W odrรณลผnieniu od C. Java sprawdza granicฤ™ tablicy podczas uzyskiwania dostฤ™pu do jej elementu. Java nie pozwoli programiล›cie przekroczyฤ‡ swojej granicy.

Odkomentuj wiersz nr 11. Zapisz, skompiluj i uruchom kod. Obserwuj wynik

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

Krok 5) Zgล‚aszany jest wyjฤ…tek ArrayIndexOutOfBoundsException. W przypadku C ten sam kod pokazywaล‚by pewnฤ… wartoล›ฤ‡ ล›mieciowฤ….

Java Tablica: Przekaลผ przez odniesienie

Tablice sฤ… przekazywane do funkcji przez referencjฤ™ lub jako wskaลบnik do
oryginalny. Oznacza to wszystko, co zrobisz z tablicฤ… wewnฤ…trz
funkcja wpล‚ywa na oryginaล‚.

Przykล‚ad: Aby zrozumieฤ‡, Array sฤ… przekazywane przez referencjฤ™

Krok 1) Skopiuj poniลผszy kod do edytora

class ArrayDemo {
   public static void passByReference(String a[]){
     a[0] = "Changed";
   }
 
   public static void main(String args[]){
      String []b={"Apple","Mango","Orange"};
      System.out.println("Before Function Call    "+b[0]);
      ArrayDemo.passByReference(b);
      System.out.println("After Function Call    "+b[0]);
   }
}

Krok 2) Zapisz, skompiluj i uruchom kod. Obserwuj wynik

Oczekiwany wynik:

Before Function Call    Apple
After Function Call    Changed

Tablice wielowymiarowe

Tablice wielowymiarowe sฤ… w rzeczywistoล›ci tablicami tablic.

Aby zadeklarowaฤ‡ tablicฤ™ wielowymiarowฤ… zmienna, okreล›l kaลผdy dodatkowy indeks za pomocฤ… innych nawiasรณw kwadratowych.

Ex: int twoD[ ][ ] = new int[4][5] ;

Kiedy alokujesz pamiฤ™ฤ‡ dla tablicy wielowymiarowej, wystarczy okreล›liฤ‡ pamiฤ™ฤ‡ dla pierwszego (skrajnie lewego) wymiaru.

Pozostaล‚e wymiary moลผesz przydzieliฤ‡ osobno.

In Java, dล‚ugoล›ฤ‡ kaลผdej tablicy w tablicy wielowymiarowej jest pod Twojฤ… kontrolฤ….

Przykล‚ad

public class Guru99 {
public static void main(String[] args) {

// Create 2-dimensional array.
  int[][] twoD = new int[4][4];

  // Assign three elements in it.
  twoD[0][0] = 1;
  twoD[1][1] = 2;
  twoD[3][2] = 3;
  System.out.print(twoD[0][0] + " ");
}

}

Oczekiwany wynik:

1

Podsumuj ten post nastฤ™pujฤ…co: