Desátý domácí úkol

Naimplementujte rozhraní UnionIterator, IntersectionIterator a DifferenceIterator, která vrací iterátor sjednocení, průniku a rozdílu dvou iterátorů. Můžete předpokládat, že vstupní iterátory vrací prvky ve vzestupném pořadí, metodu remove implementovat nemusíte. Pozor:

Tip: vyrobte si dekorátor iterátoru, který vám umožní (jeden) již přečtený prvek vrátit zpátky do iterátoru.

class UnionIterator<E extends Comparable<E>> implements Iterator<E> {
    UnionIterator(Iterator<E> first, Iterator<E> second){}
}
 
class IntersectionIterator<E extends Comparable<E>> implements Iterator<E> {
    IntersectionIterator(Iterator<E> first, Iterator<E> second){}
}
 
class DifferenceIterator<E extends Comparable<E>> implements Iterator<E> {
    DifferenceIterator(Iterator<E> first, Iterator<E> second){}
}

Do repozitáře do souboru homeworks/Homework10.java odevzdávejte třídu UnionIterator, IntersectionIterator, DifferenceIterator a případné další vámi naprogramované třídy. Termín odevzdání 3. 5. 1:59 ráno (čas podle serveru s repozitáři).

~~DISCUSSION:closed~~