Javaのに考えるからいくつかのコードがあります:このHashMap実装でこのような操作を使用するポイントは何ですか?
public class SimpleHashMap<K,V> extends AbstractMap<K,V> {
static final int SIZE = 997;
@SuppressWarnings("unchecked")
LinkedList<MapEntry<K,V>>[] buckets = new LinkedList[SIZE];
public V put(K key, V value) {
V oldValue = null;
int index = Math.abs(key.hashCode()) % SIZE;
if(buckets[index] == null)
buckets[index] = new LinkedList<MapEntry<K,V>>();
LinkedList<MapEntry<K,V>> bucket = buckets[index];
// ...
}
// ...
}
int index = Math.abs(key.hashCode()) % SIZE;
文字列のポイントは何ですか?正確に絶対値とモジュラス演算を使用するのはなぜですか?
正のサイズの範囲内の新しい要素のインデックスを作成する必要があります。そのため、%サイズ – Marcin