/** {@inheritDoc} */
  @Override
  @Validate
  public V[] removeSubKeys(@NotNull final K subkey) {
    List<V> list = new ArrayList<V>();
    for (ConcurrentNavigableMap<K, V> m : map.values()) {
      V value = m.remove(subkey);
      if (value != null) list.add(value);
    }

    V[] result = Linq.toArray(list, getGenericTypeParameterValue());
    if (result.length == 0) result = null;

    return result;
  }
 /** {@inheritDoc} */
 @Override
 public int size() {
   return Linq.count(values());
 }
 /** {@inheritDoc} */
 @Override
 public String toString() {
   return Linq.toString(this);
 }