Класс Java HashSet

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

 
 // Создает хэш-набор и инициализирует емкость.
HashSet(capacity)
 
HashSet(capacity,fillRatio)

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

HashSet содержит набор объектов, но позволяет легко и быстро определить, находится ли объект в наборе или нет. Он делает это, внутренне управляя массивом и сохраняя объект, используя индекс, который вычисляется из хэш-кода объекта. Существуют различные реализации наборов. Некоторые делают операции ввода и поиска сверхбыстрыми элементами хэширования. Однако это означает, что порядок, в котором были добавлены элементы, теряется. Другие реализации сохраняют добавленный заказ за счет более медленного времени работы.

Длина строки JavaScript

HashSet не дает никаких гарантий относительно порядка итерации набора; в частности, он не гарантирует, что порядок будет оставаться постоянным с течением времени. В общем, наборы, реализованные с использованием хэширования, не имеют четко определенного порядка. Поскольку для каждого объекта вычисляется значение хеш-функции, это хеш-значение определяет индекс массива конкретного объекта в контейнере. Таким образом, порядок вставленных элементов, естественно, не сохраняется. Если вы хотите сохранить порядок вставки с помощью HashSet, а не использовать LinkedHashSet.

Следующая программа Java иллюстрирует несколько методов, поддерживаемых этой базой данных HashSet.

 
import Java.util.*;
class TestClass
{
  public static void main (String[] args) throws Java.lang.Exception
  {
    // создать объект HashSet
    HashSet days=new HashSet();
    // добавление элементов в HashSet
    days.add("Sunday");
    days.add("Monday");
    days.add("Tuesday");
    days.add("Wednesday");
    days.add("Thursday");
    days.add("Friday");
    days.add("Saturday");
    // Итерация через HashSet
    Iterator itr=days.iterator();
    while(itr.hasNext()){
      System.out.println(itr.next());
    }
    // удалить одну запись из hashset
    days.remove("Monday");
    System.out.println(days);
    // поиск в Hashset
    if(days.contains("Saturday"))
      System.out.println("Item Found");
    else
    System.out.println("Item Not Found");
    // Удаление всех элементов из Hashset
    days.clear();
    // Размер хешета
    System.out.println("Size of the HashSet: "+days.size());
  }
}

Источник: http://net-informations.com/Java/col/hashset.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector