!7 p { CircularFifoBuffer b = new CircularFifoBuffer(4); b.add('k'); b.add('i'); b.add('l'); b.add('l'); b.add('l'); S s = getLast(b, 4); assertEqualsVerbose("illl", s); assertEqualsVerbose(1L, b.getBase()); } static S getLast(CircularFifoBuffer b, int n) { n = Math.min(n, b.size()); new StringBuilder buf; Iterator it = b.getBackingStore().descendingIterator(); for (int i = 0; i < n; i++) buf.append(it.next()); return buf.reverse().toString(); }