9. cviceni ========== * dochazka * vysledky 2. pisemky * konzultace k 5. uloze * zakladni kolekce v Jave - motivace k pouziti kolekci - dynamicke datove struktury * rozhrani List - v podstate "dynamicke pole" - kazdy prvek ma svuj index - po zmene seznamu dochazi k precislovani indexu - prvky se mohou opakovat - ArrayList = implementace pomoci pole - LinkedList = implementace pomoci spojoveho seznamu - hierarchie trid, pouzita dedicnost * rozhrani Set - proste mnozina :-) - kazdy prvek nejvyse jednou - prvky nemaji svuj index - HashSet = implementace pomoci hashovaci tabulky * rozhrani Map - v podstate "asociativni pole" - k prvkum pristupujeme pres klic, ktery muze byt libovolneho typu - vlozeni hodnoty s jiz existujicim klicem prepise puvodni hodnotu - HashMap = implementace pomoci hashovaci tabulky pro klice - lze ziskat mnozinu klicu, mnozinu dvojic (klic, hodnota) a kolekci hodnot * trida Collections - uzitecne metody pro praci s kolekcemi - paralela s tridou Arrays * ArrayList versus LinkedList - trida Main s metodou main spustitelnou z prikazove radky - demonstrace efektivnosti dvou ruznych metod z rozhrani List - ktera metoda funguje efektivneji v pripade pouziti tridy ArrayList? - ktera metoda funguje efektivneji v pripade pouziti tridy LinkedList? - svuj zaver podporte zmerenim techto operaci * rozsireni projektu Shapes o tridu ShapesQueue - dynamicka datova struktura typu fronta pro objekty typu Shape - metoda boolean isEmpty() pro zjisteni, zda je fronta prazdna - metoda int getLength() pro zjisteni delky fronty - metoda void add(Shape) pro pridani objektu na konec fronty - metoda void remove() pro odebrani objektu ze zacatku fronty - metoda String toString() pro vypis obsahu fronty - metody by mely vyhazovat odpovidajici vyjimky - implementace pomoci spojoveho seznamu, nikoliv pole - za vzornou implementaci lze ziskat az 2 premiove body