Hashtable в Java
Hashtable - это структура данных, используемая для реализации ассоциативного массива, структуры, которая может сопоставлять ключи со значениями. Он может обеспечить очень эффективный способ поиска элементов в больших объемах данных, особенно данных, которые в противном случае легко найти. Hashtable может содержать только уникальные элементы и может не иметь нулевого ключа или значения. Он почти похож на HashMap, но синхронизирован. Словарь - это абстрактный базовый класс Hashtable. Однако Java 2 переработал Hashtable, так что он также реализует интерфейс Map и делает его членом Framework коллекций Java.
Hashtable - это структура данных, используемая для реализации ассоциативного массива, структуры, которая может сопоставлять ключи со значениями. Он может обеспечить очень эффективный способ поиска элементов в больших объемах данных, особенно данных, которые в противном случае легко найти. Hashtable может содержать только уникальные элементы и может не иметь нулевого ключа или значения. Он почти похож на HashMap, но синхронизирован. Словарь - это абстрактный базовый класс Hashtable. Однако Java 2 переработал Hashtable, так что он также реализует интерфейс Map и делает его членом Framework коллекций Java....
Хэш-алгоритм используется для генерации индекса в этот массив на основе значений элемента, который будет храниться в массиве. Максимальный размер этого массива обычно меньше, чем количество элементов в наборе возможных значений для типа данных, хранящихся в хеш-таблице. Когда элемент добавляется в Hashtable, элемент помещается в ведро на основе хеш-кода ключа. Каждое ведро может иметь несколько записей, которые организованы в определенном порядке. Последующие поиски ключа используют хэш-код ключа для поиска только в одном конкретном ведре, что существенно сокращает количество сопоставлений ключей, необходимых для поиска элемента. Коэффициент загрузки Hashtable определяет максимальное отношение элементов к ведрам. Меньшие коэффициенты нагрузки вызывают более быстрое среднее время поиска за счет увеличения потребления памяти. Экземпляр Hashtable имеет два параметра, которые влияют на его производительность: начальная емкость и коэффициент нагрузки. Емкость - это количество ведер в хэш-таблице, а начальная емкость - это просто емкость на момент создания хеш-таблицы.
Следующая программа Java иллюстрирует несколько методов, поддерживаемых этой базой данных Hashtable.
import Java.util.*; class TestClass { public static void main (String[] args) throws Java.lang.Exception { // Как создать Hashtable? Hashtabledays = new Hashtable (); // Как добавить пары «ключ / значение» в Hashtable? days.put(1,"Sunday"); days.put(2,"Monday"); days.put(3,"Tuesday"); days.put(4,"Wednesday"); days.put(5,"Thursday"); days.put(6,"Friday"); days.put(7,"Saturday"); // Как проходить через Hashtable? for(Map.Entry m:days.entrySet()){ System.out.println(m.getKey()+" "+m.getValue()); } // Как удалить определенный элемент из Hashtable? days.remove(3); Set > set = days.entrySet(); for (Map.Entry sg : set) { System.out.println("Key :"+sg.getKey() + " Value :"+days.get(sg.getKey())); } // Как найти ключ в Hashtable? Integer key=4; if(days.containsKey(key)){ System.out.println("Key " + key + " found"); }else{ System.out.println("Key " + key+ " does not exist"); } // Как получить ключ от его значения в Hashtable? Integer iKey= null; String value="Monday"; for(Map.Entry entry: days.entrySet()){ if(value.equals(entry.getValue())){ iKey = (Integer)entry.getKey(); break; // нарушение, потому что его одна к одной карте } } System.out.println("Found Key : "+ iKey +" value: " + value); // Как удалить весь элемент из хэш-таблицы? days.clear(); // Как найти размер Hashtable? System.out.println("After remove: "+ days.size()); } }