кодесурса

Java HashSet

script1adsense2code
script1adsense3code

Вступление

Набор - это Коллекция, которая не может содержать повторяющиеся элементы. Моделирует математический набор абстракций. HashSet расширяет AbstractSet и реализует интерфейс Set. Он создает коллекцию, которая использует хеш-таблицу для хранения. Хеш-таблица хранит информацию с помощью механизма, называемого хэшированием. При хешировании информационное содержимое ключа используется для определения уникального значения, называемого его хеш-кодом. Хеш-код затем используется в качестве индекса, в котором хранятся данные, связанные с ключом. Преобразование ключа в его хеш-код выполняется автоматически.

Когда вы помещаете объект в Hashset, он использует значение хеш-кода объекта, чтобы определить, куда поместить объект в Set. Но он также сравнивает хеш-код объекта с хеш-кодом всех других объектов в хэш-наборе, и, если нет соответствующего хеш-кода, HashSet предполагает, что этот новый объект не является дубликатом. HashSet находит соответствующий хеш-код для двух объектов. один, который вы вставляете, и один уже в наборе - HashSet затем вызовет один из методов equals () объекта, чтобы увидеть, действительно ли эти объекты, соответствующие хэш-коду, равны. И если они равны, HashSet знает, что объект, который вы пытаетесь добавить, является дубликатом чего-то в наборе, поэтому добавление не происходит.

HashSet - это несортированный, неупорядоченный набор. Он использует хеш-код вставляемого объекта, поэтому, чем эффективнее ваша реализация hashCode (), тем выше производительность доступа. Используйте этот класс, когда вам нужна коллекция без дубликатов, и вы не заботитесь о порядке, когда просматриваете его.

 HashSet () // Конструктор по умолчанию
 HashSet (Collection c) // Создает HashSet из коллекции c
 HashSet (intacity) // создает HashSet с указанием начальной емкости
 HashSet (intacity, float loadFactor) // Это создает HashSet с емкостью и коэффициентом загрузки

Выбор слишком высокой начальной емкости может привести к потере пространства и времени. С другой стороны, выбор начальной емкости, которая слишком мала, приводит к бесполезной трате времени на копирование структуры данных каждый раз, когда она вынуждена увеличивать свою емкость. Если вы не укажете начальную емкость, по умолчанию будет 16.

У класса HashSet есть еще один параметр настройки, называемый коэффициентом загрузки. Размер HashSet увеличивается в соответствии с определенным коэффициентом загрузки или двойным размером по умолчанию.

Методы HashSet

метод Цель
public boolean add (Object o) Добавляет объект в HashSet, если он уже отсутствует в HashSet.
public boolean удалить (Объект o) Удаляет объект из HashSet, если он найден в HashSet.
public boolean содержит (объект o) Возвращает true, если объект найден, иначе возвращает false
public boolean isEmpty () Возвращает true, если HashSet пуст, иначе возвращает false
public int size () Возвращает количество элементов в HashSet

Java-код: перейти к редактору

import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
	HashSet<String> hs = new HashSet<String>();
	// Adding element to HashSet
	hs.add("M");
			hs.add("B");
			hs.add("C");
			hs.add("A");
			hs.add("M");
			hs.add("X");
			System.out.println("Size of HashSet=" + hs.size());
			System.out.println("Original HashSet:" + hs);
			System.out.println("Removing A from HashSet: " + hs.remove("A"));
			System.out.println("Trying to Remove Z which is not present: "
					+ hs.remove("Z"));
			System.out.println("Checking if M is present=" + hs.contains("M"));
			System.out.println("Updated HashSet: " + hs);
	}
}

Выход:


Резюме:

  • HashSet предоставляет коллекцию уникальных объектов
  • HashSet - несортированный, неупорядоченный и неиндексированный класс коллекции на основе
  • HashSet может иметь только один элемент Null

Редактор кода Java:

Предыдущий: Java LinkedList Class
Далее: Java TreeSet

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code