Учебное пособие: Наследование и классы-коллекции
Для заполнения объекта класса Hashtable используются два метода:
Object put(Object key, Object value) — добавляет пару "key — value", если ключа key не было в таблице, и меняет значение value ключа key, если он уже есть в таблице. Возвращает старое значение ключа или null, если его не было. Если хотя бы один параметр равен null, возникает исключительная ситуация;
void putAll(Map f) — добавляет все элементы отображения f. В объектах-ключах key должны быть реализованы методы hashCode() и equals ().
Как получить значение по ключу
Метод get (Object key) возвращает значение элемента с ключом key в виде объекта класса Object. Для дальнейшей работы его следует преобразовать к конкретному типу.
Как узнать наличие ключа или значения
Логический метод containsKey(Object key) возвращает true, если в таблице есть ключ key.
Логический метод containsvalue (Object value) или старый метод contains (Object value) возвращают true, если в таблице есть ключи со значением value.
Логический метод isEmpty() возвращает true, если в таблице нет элементов.
Как получить все элементы таблицы
Метод values()представляет все значения value таблицы в виде интерфейса Collection. Все модификации в объекте collection изменяют таблицу, и наоборот.
Метод keyset() предоставляет все ключи key таблицы в виде интерфейса set. Все изменения в объекте set корректируют таблицу, и наоборот.
Метод entrySet() представляет все пары "key — value" таблицы в виде интерфейса Set. Все модификации в объекте Set изменяют таблицу, и наоборот.
Метод toString() возвращает строку, содержащую все пары.
Как удалить элементы
Метод remove (Object key) удаляет пару с ключом key, возвращая значение этого ключа, если оно есть, и null, если пара с ключом key не найдена.
Метод clear() удаляет все элементы, очищая таблицу.
Пример программы «Телефонный справочник».
importjava.util.*;
class PhoneBook{
public static void main(String[] args){
Hashtable yp = new Hashtable();
String name = null;
yp.put("John", "123-45-67");
yp.put ("Lemon", "567-34-12");
yp.put("Bill", "342-65-87");
yp.put("Gates", "423-83-49");
yp.put("Batman", "532-25-08");
try{