Java: Práce s poli
Z MiS
				
				
				(Rozdíly mezi verzemi)
				
																
				
				
								
				| m (→Vytvoření pole:  Doplněn příklad pro základní typ - třídu.) | m (→Zjištění počtu prvků v poli:  Opraven překlep.) | ||
| (Nejsou zobrazeny 4 mezilehlé verze od 1 uživatele.) | |||
| Řádka 5: | Řádka 5: | ||
| * 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.). | * 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.). | ||
| * K prvkům pak můžeme snadno přistupovat například v cyklu. | * K prvkům pak můžeme snadno přistupovat například v cyklu. | ||
| + | |||
| == Deklarace pole == | == Deklarace pole == | ||
| Řádka 14: | Řádka 15: | ||
| Zatím se vytvoří pouze odkaz na pole, tedy jedna proměnná, která slouží jako odkaz na pole čísel. | Zatím se vytvoří pouze odkaz na pole, tedy jedna proměnná, která slouží jako odkaz na pole čísel. | ||
| + | |||
| == Vytvoření pole == | == Vytvoření pole == | ||
| Řádka 25: | Řádka 27: | ||
|   Zakaznik data = new Zakaznik[100]; |   Zakaznik data = new Zakaznik[100]; | ||
| + | |||
| == Přístup k prvkům pole == | == Přístup k prvkům pole == | ||
| Řádka 30: | Řádka 33: | ||
|   nazevPromenne[poziceVPoli]; |   nazevPromenne[poziceVPoli]; | ||
| <div class="Varovani">Prvky jsou číslované od 0!!!</div> | <div class="Varovani">Prvky jsou číslované od 0!!!</div> | ||
| − | ; | + | ;Příklady:   | 
|   System.out.println(pole[5]); |   System.out.println(pole[5]); | ||
| Řádka 36: | Řádka 39: | ||
|   if (pole[5] > pole[4]) System.out.println("Chyba!"); |   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 == | == Zjištění počtu prvků v poli == | ||
| Každé pole má vlastnost <code>length</code>, která reprezentuje počet prvků v poli. | Každé pole má vlastnost <code>length</code>, která reprezentuje počet prvků v poli. | ||
| − |   nazevPromenne. | + |   nazevPromenne.length | 
| − | ; | + | ; Příklady:   | 
|   for (int i = 0; i < pole.length; i++) { ... } |   for (int i = 0; i < pole.length; i++) { ... } | ||
| == Pole objektů == | == Pole objektů == | ||
| − | V poli můžeme ukládat skalární [[Datové typy|datové typy]], nebo objekty. Pak je syntaxe následující: | + | 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) |   Point body[]; // deklarace pole (vytvoření odkazu) | ||
| Řádka 52: | Řádka 64: | ||
|   body[5].x += 7; |   body[5].x += 7; | ||
|   System.out.println(body[5].x); |   System.out.println(body[5].x); | ||
| + | |||
| == Souhrn syntaxe == | == Souhrn syntaxe == | ||
| [[Image:pole.png]] | [[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?
- Ukládáme více prvků (proměnných) stejného datového typu.
- 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.).
- K prvkům pak můžeme snadno přistupovat například v cyklu.
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];
- Př
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

