Kotlin HashSet — это класс коллекции, который расширяет класс AbstractMutableSet и реализует интерфейс Set, использует функцию hashSetOf(). Класс HashSet хранит элементы, используя механизм хеширования. Он поддерживает функции чтения и записи. Он не поддерживает повторяющиеся значения и не гарантирует последовательность элементов.
Объявление класса HashSet
open class HashSet<E> : AbstractMutableSet<E>(source)
Конструктор Kotlin HashSet
| Конструктор | Описание |
|---|---|
| HashSet() | Создает пустой экземпляр HashSet. |
| HashSet(initialCapacity: Int, loadFactor: Float = 0f) | Используется для построения HashSet указанной емкости. |
| HashSet(elements: Collection<E>) | Создает экземпляр HashSet, используя элементы указанной коллекции. |
Функции класса
| Функции | Описание |
|---|---|
| open fun add(element: E): Boolean | Добавляет данный элемент в коллекцию. |
| open operator fun contains(element: E): Boolean | Проверяет наличие указанного элемента в текущей коллекции. |
| open fun isEmpty(): Boolean | Она проверяет, что текущая коллекция пуста (не содержит элементов). Если найденная коллекция пуста, возвращает true, в противном случае — false. |
| open fun iterator(): MutableIterator<E> | Возвращает итератор по элементам текущего объекта. |
| open fun remove(element: E): Boolean | Удаляет элемент упоминания, если он присутствует в текущей коллекции. Она возвращает true, если он удален, в противном случае false. |
| open fun clear() | Она удаляет все элементы из этой коллекции. |
Свойство Kotlin HashSet
| Свойство | Описание |
|---|---|
| open val size: Int | Это свойство используется для возврата размера коллекции HashSet. |
Пример 1 — емкость
Давайте создадим пример HashSet, определяющий его емкость. Емкость определяет общее количество элементов, добавляемых в HashSet в Котлин. Это может быть увеличение или уменьшение позже в соответствии с необходимостью.
fun main(args: Array<String>){
var hashSet = HashSet<Int>(6)
hashSet.add(2)
hashSet.add(13)
hashSet.add(6)
hashSet.add(5)
hashSet.add(2)
hashSet.add(8)
println("......traversing hashSet......")
for(element in hashSet){
println(element)
}
}
Выход:
......traversing hashSet...... 8 2 13 5 6
Пример 2 — универсальный
Для большей конкретики мы можем предоставить общие типы класса HashSet, используя его метод hashSetOf().
fun main(args: Array<String>){
var hashSetOf1 = hashSetOf<Int>(2,13,6,5,2,8)
var hashSetOf2: HashSet<String> = hashSetOf<String>("Vijay","Ashu" ,"Vijay","Roshan")
println("......traversing hashSetOf1......")
for(element in hashSetOf1){
println(element)
}
println("......traversing hashSetOf2......")
for(element in hashSetOf2){
println(element)
}
}
Выход:
......traversing hashSetOf1...... 8 2 13 5 6 ......traversing hashSetOf2...... Ashu Roshan Vijay
Пример 3 — add() и addAll()
Функция add() используется для добавления элемента в экземпляр HashSet, тогда как функция addAll() добавляет все элементы указанной коллекции в HashSet.
fun main(args: Array<String>){
var hashSet = HashSet<Int>(3)
val intSet = setOf(6,4,29)
hashSet.add(2)
hashSet.add(13)
hashSet.add(6)
hashSet.add(5)
hashSet.add(2)
hashSet.add(8)
println("......traversing hashSet......")
for(element in hashSet){
println(element)
}
hashSet.addAll(intSet)
println("......traversing hashSet after hashSet.addAll(intSet)......")
for(element in hashSet){
println(element)
}
}
Выход:
......traversing hashSet...... 8 2 13 5 6 ......traversing hashSet after hashSet.addAll(intSet)...... 2 4 5 6 8 13 29
Пример 4 — размер, contains() и containsAll()
Свойство size возвращает общее количество элементов, присутствующих в HashMap. Функция contains() возвращает true, если упомянутый в ней элемент содержится в коллекции, тогда как функция containsAll() проверяет, что все элементы указанной коллекции содержатся в этой коллекции.
fun main(args: Array<String>){
var hashSetOf1: HashSet<Int> = hashSetOf<Int>(2,6,13,4,29,15)
val mySet = setOf(6,4,29)
println("......traversing hashSetOf1......")
for(element in hashSetOf1){
println(element)
}
println(".....hashSetOf1.size.....")
println(hashSetOf1.size)
println(".....hashSetOf1.contains(13).....")
println(hashSetOf1.contains(13))
println("....hashSetOf1.containsAll(mySet)...")
println(hashSetOf1.containsAll(mySet))
}
Выход:
......traversing hashSetOf1...... 2 4 13 29 6 15 .....hashSetOf1.size..... 6 .....hashSetOf1.contains(13)..... true ....hashSetOf1.containsAll(mySet)... true
Пример 5 — remove() и removeAll()
Функция remove() удаляет указанный элемент из коллекции, если он присутствует, тогда как функция removeAll() удаляет все указанные элементы из текущей коллекции, если они присутствуют.
fun main(args: Array<String>){
var hashSetOf1: HashSet<Int> = hashSetOf<Int>(2,6,13,4,29,15)
val mySet = setOf(6,4,29)
println("......traversing hashSetOf1......")
for(element in hashSetOf1){
println(element)
}
println(".....hashSetOf1.remove(6)......")
println(hashSetOf1.remove(6))
println("......traversing hashSetOf1 after remove(6)......")
for(element in hashSetOf1){
println(element)
}
println("......hashSetOf1.removeAll(mySet)......")
println(hashSetOf1.removeAll(mySet))
println("......traversing hashSetOf1 after removeAll(mySet)......")
for(element in hashSetOf1){
println(element)
}
}
Выход:
......traversing hashSetOf1...... 2 4 13 29 6 15 .....hashSetOf1.remove(6)...... true ......traversing hashSetOf1 after remove(6)...... 2 4 13 29 15
Пример 6 — isEmpty() и isNotEmpty()
Функция isEmpty() проверяет, что текущая коллекция пуста, тогда как функция isNotEmpty() проверяет, что текущая коллекция не пуста.
fun main(args: Array<String>){
var hashSetOf1: HashSet<Int> = hashSetOf<Int>(2,6,13,4,29,15)
println("......traversing hashSetOf1......")
for(element in hashSetOf1){
println(element)
}
println(".....hashSetOf1.isEmpty()....")
if(hashSetOf1.isEmpty()){
println("hash set is empty")
}
else{
println("hash set is not empty")
}
println(".....hashSetOf1.isNotEmpty()....")
if(hashSetOf1.isNotEmpty()){
println("hash set is not empty")
}
else{
println("hash set is empty")
}
}
Выход:
......traversing hashSetOf1...... 2 4 13 29 6 15 .....hashSetOf1.isEmpty().... hash set is not empty .....hashSetOf1.isNotEmpty().... hash set is not empty
