В документаций, тип возвращаемого значения для HashMap или Hashtable это значение само по себе следующим образом,Как работает возвращаемый тип метода put в Hashtable или HashMap?
public V put(K key, V value)
и, он говорит о типе возвращаемого в предыдущее значение, связанное с ключом, или нулевое значение, если не было нет отображения для ключа. (Нулевой возврат может также означать, что карта ранее связанный нуль с ключом.)
Скажи, если я пишу Hashtable следующим образом,
Hashtable<Integer, Character> hash = new Hashtable<Integer, Character>();
System.out.println(hash.put(12, 'c'));
Теперь, приведенный выше код возвращает null
. Я реализую Hashtable, и я немного смущен, когда возвращаю null или V, где V будет предыдущим значением, связанным с ключом. Мой код выглядит следующим образом:
// for dealing w/ the table data
class HashEntry<K, V> {
private final K key;
private V value;
public HashEntry(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
}
class MyHashTable <K, V> {
private int size;
private int DEFAULT_CAPACITY = 16;
private HashEntry<K, V>[] values = new HashEntry[DEFAULT_CAPACITY];
public V put(K key, V value) {
boolean insert = true;
for (int i = 0; i < size; i++) {
if (values[i].getKey().equals(key)) {
values[i].setValue(value);
insert = false;
}
}
if (insert) {
// method for check or increase capacity
increaseCapacity();
values[size++] = new HashEntry<K, V>(key, value);
}
return null;
// return value;
}
Когда я должен возвращать значение null или значение (тип V) в реализации?
Что вы не понимаете об этом? Объяснение в документации кажется простым. – user2357112
Что неясно? Это поведение подробно описано подробно в тех документах, которые вы просто указали. – chrylis
Я редактировал вопрос, и речь идет о реализации Hashtable. – Arefe