Метод entrySet()
возвращает Set<Map.Entry<K,V>>
в HashMap / HashTable.Почему набор не поддерживает операции add / addAll, мы знаем ввод ключа и значения?
Я заметил реализацию java.util.Hashtable.EntrySet.add(Map.Entry<K, V> o)
, описанную в Jdk1.8:
private class EntrySet extends AbstractSet<Map.Entry<K,V>> {
public boolean add(Map.Entry<K,V> o) {
// MyNote: Call AbstractCollection<E>.add(E e) and
// throw UnsupportedOperationException
return super.add(o);
}
}
Почему нетреализовать для поддержки операции добавления, как следует:
private class EntrySet extends AbstractSet<Map.Entry<K,V>> {
/**
* @return <tt>false</tt> if key has exists
*/
public boolean add(Map.Entry<K,V> o) {
V old = Hashtable.this.put(o.getKey(), o.getValue());
return (null == old);
}
}