Класс Kotlin HashSet: функция hashSetOf()

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

Оцените статью