public object getOrAdd(object key, Func valFunc) { if (containsKey(key)) return get(key); object val = valFunc.call(key); add(key, val); return val; }