@Override
    public Iterator<E> iterator() {
        return Iterators.transform(items.iterator(), serializer::decode);
    }
@Test
    public void testIterator() throws Exception {
        //Test iterator behavior (no order guarantees are made)
        Set<Integer> validationSet = Sets.newHashSet();
        fillSet(10, this.set);
        fillSet(10, validationSet);
        set.iterator().forEachRemaining(item -> assertTrue("Items were mismatched.", validationSet.remove(item)));
        //All values should have been seen and removed
        assertTrue("All entries in the validation set should have been removed.", validationSet.isEmpty());
    }