code: public void put(K key, E element) {
          final String methodName = "put(): ";
          stateLock.writeLock().lock();
          try {
              Integer index = actualIndices.remove(key);
              if (index == null)
                  throw new IllegalArgumentException("unknown key: " + key);
              elements[index] = element;
              recordIndex(index);
              checkForCompletion();
              if (tc.isDebugEnabled())
                  Tr.debug(tc, methodName + "element found for key: " + key);
              stateLock.postEvent();
          } finally {
              stateLock.writeLock().unlock();
          }
      }
docs: Add the element associated with the given key into the list at the established position for that key.
  
  @param key the key to use to add the element, which must match one of the keys provided to the constructor
  @param element the element to add
  @throws IllegalArgumentException if the key does not match one of the keys provided on construction, or if an element has already been provided for that key