Search
Naimplementujte třídu Set, reprezentující množinu, a třídy Union a Intersection, reprezentující pohled na sjednocení resp. průnik dvou množin. Všechny tři implementace by měly rozesílat události elementAdded a elementRemoved právě tehdy, když se velikost dané množiny zvětšila nebo změnšila o jednu (tzn. např. Set nerozesílá elementAdded při pokusu o přidání již obsaženého prvku).
Set
Union
Intersection
elementAdded
elementRemoved
interface ObservableSet { boolean contains(Integer elem); void addSetListener(SetListener sl); void removeSetListener(SetListener sl); } interface SetListener { void elementAdded(ObservableSet source, Integer elem); void elementRemoved(ObservableSet source, Integer elem); } class Set implements ObservableSet { void add(Integer elem) {} void remove(Integer elem) {} } class Union implements ObservableSet { Union(ObservableSet first, ObservableSet second) {} } class Intersection implements ObservableSet { Intersection(ObservableSet first, ObservableSet second) {} }
Do repozitáře do souboru homeworks/Homework11.java odevzdávejte třídy Set, Union a Intersection a případné další vámi naprogramované třídy. Neodevzdávejte rozhraní ObservableSet a SetListener. Termín odevzdání 1. 6. 1:59 ráno (čas podle serveru s repozitáři).
homeworks/Homework11.java
ObservableSet
SetListener
~~DISCUSSION:closed~~