import java.util.*; // bevat definitie van interface Enumeration /** Een verzameling van ten hoogste tien gehele * getallen. */ class VerzamelingGehelen implements Enumeration { /** Opslag van de rij van getallen. */ private int[] inhoud; /** Huidig aantal elementen in de verzameling. */ private int aantal; /** Teller om de stand van het "volgende" element * bij te houden in een opsomming. */ private int teller; /** Construeer een lege verzameling. */ VerzamelingGehelen() { inhoud = new int[10]; aantal = 0; teller = 0; } /** Ga na of er nog niet-opgesomde elementen * aanwezig zijn. */ public boolean hasMoreElements() { return (teller < aantal); } /** Geef het volgende element in de opsomming. */ public Object nextElement() { if (hasMoreElements()) return new Integer(inhoud[teller++]); else { System.out.println("alle elementen reeds opgesomd"); return null; } } /** Voeg een element toe aan de verzameling. Eventuele * dubbels worden automatisch geelimineerd. */ public void voegElementToe(int e) { int i; for (i = 0; i < aantal; i++) if (e == inhoud[i]) break; if ((i == aantal) && (aantal < 10)) inhoud[aantal++] = e; } } /** Klasse om het gebruik van VerzamelingGehelen * te illustreren. */ public class TestEnumerator { /** Creeer een lege verzameling, voeg er vijf * elementen aan toe en som ze op. */ public static void main(String[] args) { VerzamelingGehelen v = new VerzamelingGehelen(); v.voegElementToe(2); v.voegElementToe(3); v.voegElementToe(5); v.voegElementToe(7); v.voegElementToe(11); Enumeration e = v; while (e.hasMoreElements()) System.out.println("element " + e.nextElement()); } }