code: @SuppressWarnings("unchecked")
    private void initialize(int capacity) {
      // Find a power of 2 >= capacity
      int tableLength = 16;
      while (tableLength < capacity) {
        tableLength <<= 1;
      }
      // Allocates hash table.
      _entries = new EntryImpl[tableLength];
      _mask = tableLength - 1;
      _capacity = capacity;
      _size = 0;
      // Allocates views.
      _values = new Values();
      _entrySet = new EntrySet();
      _keySet = new KeySet();
      // Resets pointers.
      _poolFirst = null;
      _mapFirst = null;
      _mapLast = null;
      // Allocates entries.
      for (int i = 0; i < capacity; i++) {
        EntryImpl<K, V> entry = new EntryImpl<K, V>();
        entry._after = _poolFirst;
        _poolFirst = entry;
      }
    }
docs: Initializes this instance for the specified capacity.
  Once initialized, operations on this map should not create new objects
  (unless the map's size exceeds the specified capacity).
  
  @param capacity the initial capacity.