Карта введение
Сопоставьте ключ к объекту значения. Карта не может содержать дублирующих клавиш; Каждый ключ может сопоставить только одно значение больше всего. Этот интерфейс заменяет класс словаря, который является полностью абстрактным классом, а не интерфейсом.
Интерфейс карты содержит три представления сбора, которые позволяют просматривать содержимое карты в форме набора клавиш, набора значений или набора отношений сопоставления клавиш. Порядок отображения определяется как порядок, в котором итератор возвращает свои элементы в представлении сбора карты. Некоторые реализации отображения явно гарантируют их порядок, такие как класс TreeMap; Другие не гарантируют свой порядок, например, класс HashMap.
Примечание. При использовании изменяющихся объектов необходимо принять дополнительную помощь в качестве клавиш отображения. Когда объект является ключом в карте, если значение объекта изменяется таким образом, чтобы влиять на сравнение равных, поведение карты будет неопределенным. Особый случай, который это запрещает, заключается в том, что карта не позволяет включать в себя в качестве ключа. Хотя карта разрешена включать себя как значение, будьте осторожны: определение равных и методов хэшкодов больше не будет четко явным на таких картах.
Интерфейс карты:
Карта обеспечивает отображение от ключа к значению. Карта не может содержать одинаковую клавишу, и каждая клавиша может отображать только одно значение. Интерфейс карты предоставляет три типа видов коллекции. Содержание карты можно рассматривать как набор коллекций ключей, набора коллекций значений или набора сопоставлений ключей.
Хэштерный класс
Hashtable наследует интерфейс карты и реализует хэш-таблицу с помощью картирования клавиш. Любой не нулевой объект может использоваться в качестве ключа или значения.
Используйте PUT (ключ, значение), чтобы добавить данные, используйте GET (ключ) для извлечения данных. Время накладных расходов этих двух основных операций является постоянным. Hashtable корректирует производительность через начальные параметры емкости и коэффициента нагрузки. Обычно коэффициент загрузки по умолчанию 0,75 может лучше достичь времени и космического баланса. Увеличение коэффициента нагрузки может сэкономить пространство, но соответствующее время поиска увеличится, что повлияет на такие операции, как Get и Plat.
Простой пример использования хэштета заключается в следующем: Поместите 1, 2 и 3 в хэштику, а их ключи - «один», «два», «три» соответственно:
Hashtable Numbers = new Hashtable (); numbers.put ("One", новое целое число (1)); numbers.put («два», новое целое число (2)); numbers.put ("three", новое целое число (3));Чтобы взять число, например, 2, используйте соответствующий ключ:
Integer n = (Integer) numbers.get ("два"); System.out.println ("two =" + n);Поскольку объект в качестве ключа будет определять положение соответствующего значения путем расчета его хэш -функции, любой объект в качестве ключа должен реализовать методы хэшкода и равные. HashCode и Equal Method, наследуя от объекта класса корневого класса. Если вы используете пользовательский класс в качестве ключа, будьте очень осторожны. Согласно определению функции хэш, если два объекта одинаковы, то есть obj1.equals (obj2) = true, их хэшкод должен быть одинаковым, но если два объекта разные, их хэшкоды не могут быть разными. Если хешкоды двух разных объектов одинаковы, это явление называется конфликтом. Конфликт увеличит время работы хэш -таблицы. Поэтому попробуйте определить метод HashCode (), чтобы ускорить работу хэш -таблицы.
Если один и тот же объект имеет разные хэшкоды, операция в таблице хэш будет иметь неожиданные результаты (ожидаемый метод получения возврата нулевой). Чтобы избежать этой проблемы, вам нужно вспомнить только одну вещь: вы должны переписать метод Equals и метод хэшкода одновременно, а не просто писать один из них.
Хэштабл синхронизирован.
Hashmap Class
HashMap похож на хэштату, разница в том, что HashMap является асинхронным и допускает нулевое, то есть нулевое значение и нулевой ключ. , но когда HASHMAP считается методом сбора (The Value () может вернуть коллекцию), его итеративное время субоперирования пропорционально способности HashMap. Следовательно, если производительность итерационных операций очень важна, не устанавливайте инициализацию HashMap слишком высокой или коэффициент нагрузки слишком низок.
Sleedhashmap Class
Sleedhashmap - это улучшенный хэшмап, который реализует «слабую ссылку» на ключ. Если ключ больше не ссылается извне, ключ может быть переработан GC.
Выше приведено введение в интерфейс карты Java. Студенты, которые изучают программы Java, могут ссылаться на это.