class LineCloud { LinkedList elements; int capacity; LineCloud( int capacity ) { this.capacity = capacity; elements = new LinkedList(); } void Update( int delta ) { Iterator it = elements.iterator(); while( it.hasNext() ) { DrawLine ln = (DrawLine)it.next(); if( ln.IsDead() ) { it.remove(); } } } void Add( DrawLine ln ) { while ( elements.size() >= capacity ) { elements.poll(); } elements.add( ln ); } void AddToShape() { Iterator it = elements.iterator(); while( it.hasNext() ) { DrawLine ln = (DrawLine)it.next(); ln.AddToShape(); } } }