Java: Kontejnery
Z MiS
Obsah |
Kontejner
- Třída, která umožňuje ukládat více objektů.
- Příklad: Třída
ArrayList.
Práce s kontejnerem ArrayList
- Vytvoření kontejneru
ArrayList<Predmet> kontejner = new ArrayList<Predmet>();
- Od Javy 8 stačí psát:
ArrayList<Predmet> kontejner = new ArrayList<>();
- 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
- Předpokládejme, že máme kontejner instancí třídy
Prvek:
ArrayList<Prvek> kontejner = new ArrayList<>();
- Pokud chceme projít všechny prvky v kontejneru a s každým provést nějakou operaci, pak použijeme cyklus
for each. - Zapisujeme:
for (Prvek nazevPromenne : kontejner) {
... Práce s konkrétním prvkem (je v proměnné nazevPromenne)...
}
- Příklady
- 1.
- Vypíšte jména všech osob v kontejneru instancí třídy
Osoba
ArrayList<Osoba> kontejner = new ArrayList<>();
for (Osoba o : kontejner) {
System.out.println(o.getJmeno());
}
- 2. Sečtěte hodnoty všech prvků v poli
- Máte kontejner instancí třídy
Ucet. TřídaUcetmá metodugetStav(), která vrací číslo — aktuální stav účtu. - Sečtěte celkový stav na všech účtech dohromady:
ArrayList<Ucet> ucty = new ArrayList<>();
int vysledek = 0;
for (Ucet u : ucty) {
vysledek += u.getStav();
}
System.out.println(vysledek);
Úkoly
- Úkol 1
- Máte kontejner instancí třídy
Klient. - Máte k dispozici metodu
odesliPlatbu(Klient k, int castka). Jedná se o instanční metodu vaší třídy. - Všem klientům máte odeslat částku ve výši 100 Kč.
- Úkol 2
- Máte kontejner instancí třídy <code>Odev.
- Vytvořte instanci třídy
Pradelna, třída má metoduoper(Odev o). (TříduPradelnapsát nemusíte.) - Vezměte postupně všechny instance třídy
Odeva předejte je k oprání vytvořené instanci třídyPradelna.