Java: Kontejnery

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Doplněny rozhraní List, doplněno, že do kontejnerů lze ukládat jen objekty, nový úkol s čísly.)
m (Úkoly: Úkoly jsou samostatné nadpisy, aby na ně šlo odkazovat.)
Řádka 102: Řádka 102:
  
 
== Úkoly ==
 
== Úkoly ==
; Úkol 1  
+
=== Úkol 1 ===
 
* Vytvořte seznam (list) pro uložení celých čísel (použijte třídu <code>Integer</code>).  
 
* Vytvořte seznam (list) pro uložení celých čísel (použijte třídu <code>Integer</code>).  
 
* Vložte do seznamu 5 náhodně vygenerovaných čísel. Pro generování náhodného čísla můžete využít kód:
 
* Vložte do seznamu 5 náhodně vygenerovaných čísel. Pro generování náhodného čísla můžete využít kód:
Řádka 111: Řádka 111:
 
* Vypište největší číslo v&bnsp;seznamu.
 
* Vypište největší číslo v&bnsp;seznamu.
  
; Úkol 2
+
=== Úkol 2 ===
 
* Máte kontejner instancí třídy <code>Klient</code>.  
 
* Máte kontejner instancí třídy <code>Klient</code>.  
 
* Máte k dispozici metodu <code>odesliPlatbu(Klient k, int castka)</code>. Jedná se o instanční metodu vaší třídy.
 
* Máte k dispozici metodu <code>odesliPlatbu(Klient k, int castka)</code>. Jedná se o instanční metodu vaší třídy.
 
* Všem klientům máte odeslat částku ve výši 100 Kč.
 
* Všem klientům máte odeslat částku ve výši 100 Kč.
  
; Úkol 3  
+
=== Úkol 3 ===
 
* Máte kontejner instancí třídy <code>Odev</code>.
 
* Máte kontejner instancí třídy <code>Odev</code>.
 
* Vytvořte instanci třídy <code>Pradelna</code>, třída má metodu <code>oper(Odev o)</code>. (Třídu <code>Pradelna</code> psát nemusíte.)
 
* Vytvořte instanci třídy <code>Pradelna</code>, třída má metodu <code>oper(Odev o)</code>. (Třídu <code>Pradelna</code> psát nemusíte.)
 
* Vezměte postupně všechny instance třídy <code>Odev</code> a předejte je k oprání vytvořené instanci třídy <code>Pradelna</code>.
 
* Vezměte postupně všechny instance třídy <code>Odev</code> a předejte je k oprání vytvořené instanci třídy <code>Pradelna</code>.

Verze z 27. 9. 2022, 08:32


Obsah

Kontejner

Rozhraní List


Práce s kontejnerem ArrayList

Vytvoření kontejneru
List<Predmet> kontejner = new ArrayList<>();
List<Predmet> kontejner = new ArrayList<Predmet>();


Uložení objektu
kontejner.add(predmet);
Získání objektu
Predmet kontejner.get(poradi);
Odstranění objektu z kontejneru
kontejner.remove(poradi);
kontejner.remove(predmet);
kontejner.clear();
Zjištění počtu prvků v kontejneru
int kontejner.size();
boolean kontejner.isEmpty();


Procházení kontejneru

List<Prvek> kontejner = new ArrayList<>();
for (Prvek nazevPromenne : kontejner) {
   ... Práce s konkrétním prvkem (je v proměnné nazevPromenne)...
}
Příklady
1. Vypište jména všech osob v kontejneru instancí třídy Osoba
List<Osoba> kontejner = new ArrayList<>();
for (Osoba o : kontejner) {
   System.out.println(o.getJmeno());
}
2. Sečtěte hodnoty všech prvků v poli
List<Ucet> ucty = new ArrayList<>();
int vysledek = 0;
for (Ucet u : ucty) {
   vysledek += u.getStav();
}
System.out.println(vysledek);


Přehled syntaxe — srovnání s polem

ArrayList Pole
Vytvoření kontejneru

import java.util.ArrayList;
...
ArrayList<Auto> kontejner = new ArrayList<>();

Auto pole[] = new Auto[5]
Uložení prvku kontejner.set(5, new Auto())
kontejner.add(new Auto())
pole[5] = new Auto()
Vyzvednutí prvku kontejner.get(5).startuj() pole[5].startuj()
Zjištění počtu prvků kontejner.size() pole.length
Odstranění prvku kontejner.remove(auto);
kontejner.remove(3);
Průchod foreach
for (Auto a : kontejner) { 
    a.jed(); 
}
for (Auto a : pole) { 
     a.jed(); 
}
Co lze ukládat? pouze objekty (Integer, Klient,...) objekty i skalární datové typy (int, boolean,...)


Úkoly

Úkol 1

Integer nahodne = (int)(Math.random()*99+1);

Úkol 2

Úkol 3

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