重複の可能性:
Java HashMap のデフォルトの初期容量
java.util.HashMap で HashMap の実装を読んでいました。初期容量、最大容量などは 2 のべき乗です。
java.util.HashMap からコピーされた宣言の一部
/**
* The default initial capacity - MUST be a power of two.
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
/**
* The maximum capacity, used if a higher value is implicitly specified
* by either of the constructors with arguments.
* MUST be a power of two <= 1<<30.
*/
static final int MAXIMUM_CAPACITY = 1 << 30;
/**
* The table, resized as necessary. Length MUST Always be a power of two.
*/
transient Entry[] table;
コメントは、サイズが 2 の累乗でなければならないことを示唆しています。なぜ 2 のべき乗がそれほど重要視されるのでしょうか。