void (T[] array, int index, V value) { final T key = array[index]; if (index == array.length - 1) { if (myValuesMap == null) { //noinspection deprecation myValuesMap = new SoftHashMap<>(myStrategy); } myValuesMap.put(key, value); } else { if (myContinuationMap == null) { //noinspection deprecation myContinuationMap = new SoftHashMap<>(myStrategy); } SoftArrayHashMap<T, V> softArrayHashMap = myContinuationMap.get(key); if (softArrayHashMap == null) { myContinuationMap.put(key, softArrayHashMap = new SoftArrayHashMap<>(myStrategy)); } softArrayHashMap.put(array, index + 1, value); } }