public Iterator<V> values() {
        return new LongObjectCacheValuesIterator<>(this);
    }
@Test
    public void cacheIterator() {
        LongObjectCache<String> cache = new LongObjectCache<>(4);
        cache.put(0, "An IDE");
        cache.put(1, "good IDEA");
        cache.put(2, "better IDEA");
        cache.put(3, "perfect IDEA");
        cache.put(4, "IDEAL");
        HashSet<String> values = new HashSet<>();
        final Iterator<String> it = cache.values();
        while (it.hasNext()) {
            values.add(it.next());
        }
        Assert.assertNull(cache.get(0));
        Assert.assertFalse(values.contains("An IDE"));
        Assert.assertTrue(values.contains("good IDEA"));
        Assert.assertTrue(values.contains("better IDEA"));
        Assert.assertTrue(values.contains("perfect IDEA"));
        Assert.assertTrue(values.contains("IDEAL"));
    }