code: @Override
      public Object remove(K key) {
          for (Map<K, V> bucket : buckets) {
              Object value = bucket.remove(key);
              if (value != null) {
                  return value;
              }
          }
          return null;
      }
docs: On the side of performance, scanning from header is faster on the side of logic, it should scan from the end to first.