There's some code from **Thinking in Java**:

```
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];
        // ...
    }
    // ...
}

```

What's the point of the `int index = Math.abs(key.hashCode()) % SIZE;` string? Why are used exactly absolute value and modulus operations?