diff --git a/set.go b/set.go
index 4c52c8e..28d2ada 100644
--- a/set.go
+++ b/set.go
@@ -97,6 +97,9 @@
 	// panic.
 	Intersect(other Set[T]) Set[T]
 
+	// IsEmpty determines if there are elements in the set.
+	IsEmpty() bool
+
 	// IsProperSubset determines if every element in this set is in
 	// the other set but the two sets are not equal.
 	//
diff --git a/threadsafe.go b/threadsafe.go
index 067d09a..6086f31 100644
--- a/threadsafe.go
+++ b/threadsafe.go
@@ -74,6 +74,10 @@
 	return ret
 }
 
+func (t *threadSafeSet[T]) IsEmpty() bool {
+	return t.Cardinality() == 0
+}
+
 func (t *threadSafeSet[T]) IsSubset(other Set[T]) bool {
 	o := other.(*threadSafeSet[T])
 
diff --git a/threadsafe_test.go b/threadsafe_test.go
index 01c2304..399fd30 100644
--- a/threadsafe_test.go
+++ b/threadsafe_test.go
@@ -259,6 +259,29 @@
 	wg.Wait()
 }
 
+func Test_IsEmptyConcurrent(t *testing.T) {
+	runtime.GOMAXPROCS(2)
+
+	s := NewSet[int]()
+
+	var wg sync.WaitGroup
+	wg.Add(1)
+	go func() {
+		for i := 0; i < N; i++ {
+			size := s.Cardinality()
+			if s.IsEmpty() && size > 0 {
+				t.Errorf("Is Empty should be return false")
+			}
+		}
+		wg.Done()
+	}()
+
+	for i := 0; i < N; i++ {
+		s.Add(rand.Int())
+	}
+	wg.Wait()
+}
+
 func Test_IsSubsetConcurrent(t *testing.T) {
 	runtime.GOMAXPROCS(2)
 
diff --git a/threadunsafe.go b/threadunsafe.go
index f53c42e..228bada 100644
--- a/threadunsafe.go
+++ b/threadunsafe.go
@@ -163,6 +163,10 @@
 	return intersection
 }
 
+func (s threadUnsafeSet[T]) IsEmpty() bool {
+	return s.Cardinality() == 0
+}
+
 func (s threadUnsafeSet[T]) IsProperSubset(other Set[T]) bool {
 	return s.Cardinality() < other.Cardinality() && s.IsSubset(other)
 }
