import java.util.*; /** * En pulje af objekter. * Objekterne skal først føjes til puljen udefra med kald til sætInd() */ public class Objektpulje { private ArrayList ledige = new ArrayList(); /** * Læg et ledigt objekt ind i puljen. * Bruges både til at initialisere puljen lige efter dens oprettelse, * og løbende, når et fjernet objekt bliver ledigt igen. */ public synchronized void sætInd(Object obj) { ledige.add(obj); } /** * Tag et ledigt objekt ud af puljen. * @throws RuntimeException hvis puljen er løbet tør for objekter. */ public synchronized Object tagUd() { if (ledige.isEmpty()) throw new RuntimeException("Ikke flere objekter"); Object obj = ledige.remove(ledige.size()-1); // tag objekt ud af puljen return obj; } }