private void put(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);
    }
  }
private void put(T[] array, int index, V value)