Kotlin Any equals Function

Introduction

The equals function in Kotlin is a part of the kotlin.Any class. It is used to compare two objects for equality. This equals function is crucial for determining if two objects are considered equal in terms of their content.

The equals method returns a boolean value indicating whether two objects are equal. It is an essential method for comparing objects in Kotlin, ensuring that they are identical in content rather than just references.

equals Function Syntax

The syntax for the equals function is as follows:

open operator fun equals(other: Any?): Boolean

Parameters:

  • other: The object to compare with the current instance.

Returns:

  • true if the objects are equal; false otherwise.

The equals method is used to compare the current object with another object. It is often overridden in custom classes to provide meaningful equality checks. The default implementation compares object references, but it can be customized to compare object contents.

Examples

Basic Usage

To demonstrate the basic usage of equals, we will create a simple example comparing two strings.

Example

fun main() {
    val str1 = "Kotlin"
    val str2 = "Kotlin"
    val str3 = "Java"

    println("Are str1 and str2 equal? ${str1.equals(str2)}")
    println("Are str1 and str3 equal? ${str1.equals(str3)}")
}

Output:

Are str1 and str2 equal? true
Are str1 and str3 equal? false

Using equals with Custom Classes

This example shows how to override the equals function in a custom class to compare object contents.

Example

class Person(val name: String, val age: Int) {
    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (other !is Person) return false
        return name == other.name && age == other.age
    }

    override fun hashCode(): Int {
        var result = name.hashCode()
        result = 31 * result + age
        return result
    }
}

fun main() {
    val person1 = Person("Ravi", 25)
    val person2 = Person("Ravi", 25)
    val person3 = Person("Anjali", 30)

    println("Are person1 and person2 equal? ${person1.equals(person2)}")
    println("Are person1 and person3 equal? ${person1.equals(person3)}")
}

Output:

Are person1 and person2 equal? true
Are person1 and person3 equal? false

Real-World Use Case

Comparing Data Objects

In real-world applications, the equals function is often used to compare data objects, such as those received from a database or API, to check for equality based on their contents.

Example

data class User(val id: Int, val username: String, val email: String)

fun main() {
    val user1 = User(1, "user1", "user1@example.com")
    val user2 = User(1, "user1", "user1@example.com")
    val user3 = User(2, "user2", "user2@example.com")

    println("Are user1 and user2 equal? ${user1.equals(user2)}")
    println("Are user1 and user3 equal? ${user1.equals(user3)}")
}

Output:

Are user1 and user2 equal? true
Are user1 and user3 equal? false

Conclusion

The Any.equals function in Kotlin is used to compare objects for equality. This method is particularly useful for ensuring that objects are identical in content, which is essential in many programming scenarios, such as data comparison and validation. 

By understanding and using this method, you can effectively manage object comparisons in your Kotlin applications. Always remember to override the equals method in custom classes to provide meaningful equality checks based on object content.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare