@Override
    public Iterator<E> iterator() {
        return Collections.unmodifiableList(underlying).iterator();
    }
@Test
    public void testIterator() {
        BoundedList<Integer> list = BoundedList.newArrayBacked(3);
        list.add(1);
        list.add(2);
        list.add(3);
        assertEquals(1, list.iterator().next());
        assertEquals(1, list.listIterator().next());
        assertEquals(3, list.listIterator(2).next());
        assertFalse(list.listIterator(3).hasNext());
    }