Интерфейс Set в Java

Интерфейс java.util.set  является подтипом интерфейса java.util.Collections . Он представляет собой набор объектов, каждый из которых может существовать только один раз. Интерфейс set содержит только методы, унаследованные от Collections.

Реализации Set

Платформа Java имеет 3 реализации Set. Вы можете выбрать одну из следующих коллекций объектов:
  • java.util.HashSet
  • java.util.TreeSet
  • java.util.LinkedHashSet
Каждая из этих реализаций хранит элементы в хэш-таблице. Это лучшая реализация, но она отличается, когда дело доходит до сканирования набора и порядка элементов, а также времени доступа и изменений в этих списках. Экземпляры множеств сопоставимы, несмотря на их различия, две реализации равны, если они содержат одни и те же элементы.

HashSet возвращается значением HashMap. Нет никакой гарантии, что последовательность будет соблюдаться во время курса.

TreeSet упорядочить элементы в соответствии со значениями, а не с помощью ключей, что немного медленнее, чем HashTable.

LinkedList упорядочить элементы на основе порядка во время insert.

Вот несколько примеров того, как создать Set:

Set hset = new HashSet(); 
Set tset = new TreeSet();
Set lset = new LinkedHashSet();

Basic Set

1)void add(Object o)
Добавляет элемент в коллекцию. Этот метод унаследован от интерфейса Collection.


Set hset = new HashSet(); 
hset.add(new String("1"));
hset.add(new String("2"));
2)boolean remove(Object o)
Удаляет конкретный элемент из коллекции. Если он существует, он возвращает логическое значение true.

hset.remove("1"); 
3)Итератор iterator()
Возвращает итератор на Set.

Set hset = new HashSet(); 
Итератор итератора = hset.iterator();
while(iterator.hasNext(){
Строковый элемент = (Строка) iterator.next();
}
4)Int size()
Возвращает количество элементов в наборе Set.

System.out.println(hset.size()); 

Generic объявление Set

Objects может быть добавлено по умолчанию в set Набор  но можно ограничить тип объекта, который вы хотите вставить, в Set:

Set< Строка> set = новый HashSet< Строка> (); 
Этот оператор принимает только объекты String. Преимущество заключается в том, что вы можете использовать и напрямую обращаться к Set without cast:

for(String Object : set){
//do something
}
References:
Java Collection: set
Javadoc: Установите интерфейс