[kotlin] 코틀린에서 제네릭을 사용하여 집합(Set)을 구현하는 방법은 어떻게 되는가?

아래는 제네릭을 사용하여 집합(Set)을 구현하는 예제 코드입니다.

// 제네릭을 사용하여 Set을 구현
class MySet<T> {
    private val set = mutableSetOf<T>()
    
    fun add(element: T) {
        set.add(element)
    }
    
    fun remove(element: T) {
        set.remove(element)
    }
    
    fun contains(element: T): Boolean {
        return set.contains(element)
    }
    
    fun size(): Int {
        return set.size
    }
}

위의 코드에서 MySet 클래스는 제네릭을 사용하여 타입 T에 대한 집합을 구현한 것입니다. 이제 MySet 클래스를 사용하여 다양한 타입의 집합을 생성할 수 있습니다.

예를 들어, MySet 클래스를 사용하여 정수형 집합을 생성하려면 다음과 같이 할 수 있습니다.

val intSet = MySet<Int>()
intSet.add(1)
intSet.add(2)
intSet.add(3)
println(intSet.contains(2)) // 출력: true
println(intSet.size()) // 출력: 3
intSet.remove(2)
println(intSet.contains(2)) // 출력: false
println(intSet.size()) // 출력: 2

이와 같이 제네릭을 사용하여 집합(Set)을 구현할 수 있습니다.