public void put(K key, V value) {
            if (key == null) return;
            int hash = getHashCode(key);
            if (buckets[hash] == null) {
                buckets[hash] = new LinkedList<Item<K, V>>();
            }
            LinkedList<Item<K, V>> bucket = buckets[hash];
            for (Item<K, V> item : bucket) {
                if (item.getKey().equals(key)) {
                    item.setValue(value);
                    return;
                }
            }
            bucket.add(new Item<K, V>(key, value));
        }