Java: Práce s poli

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Vytvoření stránky: bez formátování)
 
m (Zjištění počtu prvků v poli: Opraven překlep.)
 
(Není zobrazeno 8 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]][[Category:Stránky s obrázky]]
  
Datová struktura
+
== K čemu je pole? ==
*Ukládáme více prvků stejného datového typu.
+
* Ukládáme více prvků (proměnných) stejného datového typu.
Základní operace
+
* K jednotlivým prvkům přistupujeme pomocí čísel (indexů). V jiných jazycích (PHP) lze jako označení prvků (index) použít i textové hodnoty atd.).
*Deklarace
+
* K prvkům pak můžeme snadno přistupovat například v cyklu.
**datovyTyp nazevPromenne[];
+
 
**Př:
+
 
***int pole[];
+
== Deklarace pole ==
*Vytvoření
+
Chceme-li vytvořit proměnnou/atribut typu pole, píšeme:
**nazevPromenne = new datovyTyp[pocetPolozek];
+
datovyTyp nazevPromenne[];
**Př:  
+
 
***pole = new int [100];
+
;Příklad:
*Přístup k prvku
+
int pole[];
**nazevPromenne[poziceVPoli];
+
 
**Prvky jsou číslované od 0!!!
+
Zatím se vytvoří pouze odkaz na pole, tedy jedna proměnná, která slouží jako odkaz na pole čísel.
**Př:  
+
 
***System.out.println(pole[5]);
+
 
***pole[5] = 7;
+
== Vytvoření pole ==
***if (pole[5] > pole[4]) System.out.println("Chyba!");
+
Paměť pro všechny prvky pole se vyhradí teprve příkazem new:
*Zjištění počtu prvků
+
nazevPromenne = new datovyTyp[pocetPolozek];
**nazevPromenne.lenght
+
;Př:  
**Př:  
+
pole = new int[100];
***for (int i = 0; i < pole.length; i++) { ... }
+
 
Pole objektů
+
int pocet = Konfigurace.getPocetPrvku();
*Point body[];
+
pole = new int[pocet];
*body = new Point[200];
+
 
*body[5] = new Point(8, 7);
+
Zakaznik data = new Zakaznik[100];
*System.out.println(body[5].x);
+
 
*PR* Prvních 100 prvočísel.
+
 
 +
== Přístup k prvkům pole ==
 +
Chci-li pracovat s konkrétním prvkem pole, použiji zápis:
 +
nazevPromenne[poziceVPoli];
 +
<div class="Varovani">Prvky jsou číslované od 0!!!</div>
 +
;Příklady:  
 +
System.out.println(pole[5]);
 +
 
 +
pole[5] = 7;
 +
 
 +
if (pole[5] > pole[4]) System.out.println("Chyba!");
 +
 
 +
Prvky můžeme samozřejmě procházet v [[Cykly|cyklu]] podobně jako [[Java: Kontejnery|kontejnery]]:
 +
 
 +
Zbozi pole[] = new Zbozi[15];
 +
for (int i = 0; i < pole[[#Zjištění počtu prvků v poli|.length]]; i++) { pole[i] = new Zbozi(); }
 +
 +
int celkem = 0;
 +
for (Zbozi z : pole) { celkem += z.getCena(); }
 +
 
 +
 
 +
== Zjištění počtu prvků v poli ==
 +
Každé pole má vlastnost <code>length</code>, která reprezentuje počet prvků v poli.
 +
nazevPromenne.length
 +
; Příklady:  
 +
for (int i = 0; i < pole.length; i++) { ... }
 +
 
 +
== Pole objektů ==
 +
V poli můžeme ukládat skalární [[Java: Datové typy|datové typy]], nebo objekty. Pak je syntaxe následující:
 +
 
 +
Point body[]; // deklarace pole (vytvoření odkazu)
 +
body = new Point[200]; // vytvoření pole (obsazení paměti pro odkazy na objekty)
 +
body[5] = new Point(8, 7); // přiřazení objektu na konkrétní pozici
 +
// přístup k objektům a jejich vlastnostem:
 +
body[5].x += 7;
 +
System.out.println(body[5].x);
 +
 
 +
 
 +
== Souhrn syntaxe ==
 +
 
 +
[[Image:pole.png]]
 +
 
 +
 
 +
== Související stránky ==
 +
* [[Cykly]], [[Java: Kontejnery]], [[Java: Datové typy]]

Aktuální verze z 10. 2. 2017, 10:23


Obsah

K čemu je pole?


Deklarace pole

Chceme-li vytvořit proměnnou/atribut typu pole, píšeme:

datovyTyp nazevPromenne[];
Příklad
int pole[];

Zatím se vytvoří pouze odkaz na pole, tedy jedna proměnná, která slouží jako odkaz na pole čísel.


Vytvoření pole

Paměť pro všechny prvky pole se vyhradí teprve příkazem new:

nazevPromenne = new datovyTyp[pocetPolozek];
pole = new int[100];
int pocet = Konfigurace.getPocetPrvku();
pole = new int[pocet];
Zakaznik data = new Zakaznik[100];


Přístup k prvkům pole

Chci-li pracovat s konkrétním prvkem pole, použiji zápis:

nazevPromenne[poziceVPoli];
Prvky jsou číslované od 0!!!
Příklady
System.out.println(pole[5]);
pole[5] = 7;
if (pole[5] > pole[4]) System.out.println("Chyba!");

Prvky můžeme samozřejmě procházet v cyklu podobně jako kontejnery:

Zbozi pole[] = new Zbozi[15];
for (int i = 0; i < pole.length; i++) { pole[i] = new Zbozi(); }

int celkem = 0;
for (Zbozi z : pole) { celkem += z.getCena(); }


Zjištění počtu prvků v poli

Každé pole má vlastnost length, která reprezentuje počet prvků v poli.

nazevPromenne.length
Příklady
for (int i = 0; i < pole.length; i++) { ... }

Pole objektů

V poli můžeme ukládat skalární datové typy, nebo objekty. Pak je syntaxe následující:

Point body[]; // deklarace pole (vytvoření odkazu)
body = new Point[200]; // vytvoření pole (obsazení paměti pro odkazy na objekty)
body[5] = new Point(8, 7); // přiřazení objektu na konkrétní pozici
// přístup k objektům a jejich vlastnostem:
body[5].x += 7;
System.out.println(body[5].x);


Souhrn syntaxe

Pole.png


Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje