public klasse elementAt (int n)
	{	if (n<0 || n>=ON)
			throw new ArrayIndexOutOfBoundsException(n);
		if (Gap<0 || n<Gap) return O[n];
		int k=Gap;
		for (int i=Gap; i<OLast; i++)
		{	if (O[i]==null) continue;
			O[k]=O[i]; O[i]=null;
			if (k==n)
			{	klasse ret=O[k];
				k++; Gap=k;
				if (Gap>=ON)
				{	for (int j=Gap; j<OLast; j++) O[j]=null;
					OLast=ON; Gap=-1;
				}
				return ret;
			}
			k++;
		}
		// never happens
		throw new ArrayIndexOutOfBoundsException(n); 
	}