0
集儲存獨特的數據想知道如何設定儲存獨特的數據沒有在java中重複的值?是否有任何機制設定folow中,當存儲數據我如何在Java
集儲存獨特的數據想知道如何設定儲存獨特的數據沒有在java中重複的值?是否有任何機制設定folow中,當存儲數據我如何在Java
java.util.Set#add(E)
內部調用jav.util.Map#put(K,V)
傳遞嘗試的元素添加爲關鍵字,它檢查當前集合中是否有與關鍵字哈希碼(其中關鍵字是您嘗試插入的元素)相同的哈希碼,並且它還使用equals()方法檢查相等性。如果散列碼或相等測試失敗,它只會添加到Set中。如果散列碼和相等測試都通過,那麼它只是用當前值替換舊值。以下是Set#add()和Map#put()的來源。
public boolean add(E e) {
217 return map.put(e, PRESENT)==null;
218 }
public V put(K key, V value) {
387 if (key == null)
388 return putForNullKey(value);
389 int hash = hash(key.hashCode());
390 int i = indexFor(hash, table.length);
391 for (Entry<K,V> e = table[i]; e != null; e = e.next) {
392 Object k;
393 if (e.hash == hash && ((k = e.key) == key || key.equals(k))) {
394 V oldValue = e.value;
395 e.value = value;
396 e.recordAccess(this);
397 return oldValue;
398 }
399 }
400
401 modCount++;
402 addEntry(hash, key, value, i);
403 return null;
404 }