Рубрики
Без рубрики

Класс словаря Java

Словарь Java – это абстрактный класс. Это был родительский класс для любых объектов сопоставления ключей и значений, таких как хэш-таблица. Однако он был отвергнут в пользу

Автор оригинала: Pankaj Kumar.

Словарь Java – это абстрактный класс . Это был родительский класс для любых объектов сопоставления ключей и значений, таких как хэш-таблица. Однако он устарел в пользу интерфейса карты, представленного в Java 1.2, который позже упростил структуру коллекций . Словарь не допускает значения null для ключа и значения.

Примечание : Класс словаря устарел, и вы не должны его использовать. Я много использую словарь на Python и мне стало любопытно, есть ли класс словаря в Java? Вот как я узнал о классе Словарей. Информация, представленная здесь, предназначена только для того, чтобы иметь некоторое представление об этом, если вам интересно, постарайтесь не использовать ее в своем приложении.

Методы словаря Java

Этот класс объявляет 7 методов, которые должны были реализовать классы реализации.

  1. int size() : возвращает размер словаря.
  2. логическое значение isEmpty() : возвращает true, если нет сопоставлений ключ-значение, иначе false.
  3. Перечисление ключей() : возвращает перечисление ключей в словаре.
  4. Перечисление элементов() : возвращает перечисление значений в словаре.
  5. V get(ключ объекта) : возвращает значение, связанное с ключом, если ключ не существует, то возвращает значение null.
  6. V поместить(ключ K, значение V) : добавляет пару ключ-значение в словарь. Если какое-либо значение ключа равно null, то возникает Исключение NullPointerException . Если ключ уже существует, то возвращается связанное значение, а затем обновляется новое значение. Если это новый ключ, то возвращается значение null.
  7. V удалить(ключ объекта) : удаляет пару ключ-значение из словаря. Возвращается значение, связанное с ключом. Если ключ не существует в словаре, то ничего не делайте, и будет возвращено значение null.

Классы Реализации Словаря

Единственной прямой реализацией словаря является класс Hashtable. Класс Свойств расширяет хэш – таблицу, так что это также реализация Словаря.

Инициализация словаря Java

Dictionary dict = new Hashtable<>();

Словарь поддерживает универсальные типы , поэтому мы можем указывать типы ключ-значение при объявлении и создании экземпляра объекта словаря.

Инициализация словаря значениями

Класс Hashtable имеет конструктор, который принимает карту и копирует ее пару ключей в объект Hashtable. Мы можем использовать его для инициализации словаря со значениями.

Map tempMap = new HashMap<>();
tempMap.put("1", "One");

Dictionary dict1 = new Hashtable<>(tempMap);
		
System.out.println(dict1); // prints {1=One}

Словарь Java против карты

  • Словарь-это абстрактный класс, в то время как карта-это интерфейс .
  • Класс словаря был устаревшим, когда классы коллекций были оптимизированы и карта была введена в JDK 1.2
  • Не используйте словарь в своих приложениях, лучше использовать карту.

Словарь Java против хэш-таблицы

  • Словарь-это абстрактный класс, в то время как хэш-таблица-это реализация словаря.
  • Класс словаря устарел, в то время как хэш-таблица все еще используется. Фактически, хэш-таблица является частью структуры коллекций и реализует интерфейс карты.

Как проверить, существует ли Ключ в словаре

Вот простая программа, в которой мы повторяем перечисление ключей, чтобы проверить, существует ли ключ в словаре или нет.

Dictionary dict = new Hashtable<>();
dict.put("1", "One");
dict.put("2", "Two");
dict.put("3", "Three");

Enumeration keys = dict.keys();

boolean found = false;
String lookupKey = "2";
while (keys.hasMoreElements()) {
	String key = keys.nextElement();
	if (lookupKey.contentEquals(key)) {
		found = true;
		System.out.println(lookupKey + " is present in the dictionary.");
		break;
	}
}
if (!found)
	System.out.println(lookupKey + " is not present in the dictionary.");

Мы также можем использовать метод get (), чтобы проверить, существует ли ключ или нет. Если ключ не существует, то возвращается значение null. Кроме того, значения null не допускаются, поэтому для этого можно безопасно использовать проверку null.

String value = dict.get(lookupKey);

if(value != null)
	System.out.println(lookupKey + " is present in the dictionary.");
else
	System.out.println(lookupKey + " is not present in the dictionary.");

Вывод

Словарь-устаревший класс, поэтому вы не должны использовать его в своем приложении. У вас может возникнуть соблазн использовать его, если вы исходите из фона Python, но избегайте этого и используйте Map и их классы реализации.