Seminář 5 (Úkoly)

Úkol č.1

S využitím rozhraní

public interface Mapping {
   Object map(Object o);
}
Implementujte metodu List<Object> map(List<Object> list, Mapping m), která se chová stejně jako funkce map, známá ze Schemu/Lispu.

Úkol č.2

Stejným způsobem navrhněte metodu List<Object> filter(List<Object> list, Condition c), která ze seznamu vybere hodnoty splňující danou podmínku. Navrhňete vhdnou třídu/rozhraní Condition. Metodu otestujte výběrem sudých celých čísel ze seznamu. Podmínku vytvořte jako vnitřní třídu, jako anonymní třídu i jako lambda výraz.

Úkol č.3

Implementujte statickou metodu String repeatChar1(char c, int n), která vytvoří řetezec skládající se z n znaků c s použitím konkatenace řetězců (tj. s += c). Implementujte metodu String repeatChar2(char c, int n), která se bude chovat identicky jako metoda repeatChar1, ale bude používat StringBuilder. Změřte rychlost obou metod (s využitím System.currentTimeMillis) při vytváření řetězce o velikosti 100000 znaků. Z výsledků si vemte morální ponaučení!

Vyřešené úkoly zašlete do 29.10.2014 17:00 CET na email petr.krajca (zavináč) upol.cz s předmětem ZP3JV. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.


Last update on 28. 10. 2014 22:55
Powered by Schemik.

© Petr Krajča, 2010, 2012
petr.krajca (at) upol.cz