public V computeIfAbsent(K key, Function<K, V> mappingFn) {
        V value = get(key);
        if (value != null) {
            return value;
        }
        value = mappingFn.apply(key);
        put(key, value);
        return value;
    }
@Test
    public void test_computeIfAbsent() {
        cache.computeIfAbsent(1, k -> 1); // Access makes it the most recently used one
        assertEntries(entry(2, 2), entry(3, 3), entry(1, 1));

        cache.computeIfAbsent(4, k -> 4);
        assertEntries(entry(1, 1), entry(4, 4));

        sleepMillis(20);
        cache.computeIfAbsent(2, k -> 2);
        assertEntries(entry(1, 1), entry(4, 4), entry(2, 2));
    }