×

Scala Tutorial

Scala Basics

Scala Control statements

Scala Functions

Scala Arrays

Scala Lists

Scala Strings

Scala Classes & Objects

Scala Collections

Object Equality in Scala

Scala | Object Equality: Here, we will learn about object equality with examples using different methods for equality.
Submitted by Shivang Yadav, on August 01, 2020

Objects in Scala are an entity with has state (data) and behavior (function performing on data).

In object-oriented programming like Scala, objects are very important part as everything is an object. And the comparison of objects is common to check for their identity. To check for equality of objects, the inbuilt methods available are:

  1. == and != method (operator)
  2. equals method
  3. ne and eq method

1. == and != operator

To check whether two objects are equal, we have the == operator in Scala. Also, there is a != operator with is negation of == operator.

Example

case class employee (empName : String , salary : Integer)

object MyClass {
    def main(args: Array[String]) {
        var emp1 = employee("Prem", 140000)
        var emp2 = employee("Anshu", 200000)
        var emp3 = employee("Prem", 140000)
        var emp4 = emp1

        println("Example of == method")
        println(emp1 == emp2)
        println(emp1 == emp3)
        println(emp1 == emp4)

        println("Example of != method")
        println(emp1 != emp2)
        println(emp1 != emp3)
        println(emp1 != emp4)
    }
}

Output

Example of == method
false
true
true
Example of != method
true
false
false

Explanation

In the above code, we have a class employee that stores empName (storing employee name) and salary (i hope mine could be that much). For this class, we have created 4 objects. Then we have compared using == method and obtained these results.

emp1 == emp2, returns false. Both objects have different values.  

emp1 == emp3, returns true. The values of both objects are the same.

emp1 == emp4, returns true. Both objects refer to the same memory block.

We have also, compared the negation of == operator which is != operator and the results were obviously negations of the one which we got in the case of == operator.

2. equals() method

The equals() method is the same as == operator. It is used to check if the two operators are equal or not.

Syntax

object1.equals(object2)

Example

case class employee (empName : String , salary : Integer)

object MyClass {
    def main(args: Array[String]) {
        var emp1 = employee("Prem", 140000)
        var emp2 = employee("Anshu", 200000)
        var emp3 = employee("Prem", 140000)
        var emp4 = emp1

        println("Example of equals method")
        println(emp1.equals(emp2))
        println(emp1.equals(emp3))
        println(emp1.equals(emp4))
    }
}

Output

Example of equals method
false
true
true

Explanation

In the above code, we have illustrated the working of equals() method in scala. We have a class employee that stores empName (storing employee name) and salary (i hope mine could be that much). For this class, we have created 4 objects. For comparing these objects we have used the equals() method:

emp1.equals(emp2), returns false. Both objects have different values.

emp1.equals(emp3), returns true. The values of both objects are the same.

emp1.equals(emp4), returns true. Both objects refer to the same memory block.

3. ne() and eq() methods

The ne() and eq() methods in Scala are used to check if the two objects are referencing the same object location i.e. for two objects obj1 and obj2, the eq() method returns true if and only if both refer to the same memory location. If the values of two objects are the same but they don't refer to the same object, the eq() method returns false.

Syntax

For eq() method:
	object1.eq(object2)
For ne() method:
	object1.ne(object2)

Example

case class employee (empName : String , salary : Integer)

object MyClass {
    def main(args: Array[String]) {
        var emp1 = employee("Prem", 140000)
        var emp2 = employee("Anshu", 200000)
        var emp3 = employee("Prem", 140000)
        var emp4 = emp1
        
        println("Example of eq method")
        println(emp1.eq(emp2))
        println(emp1.eq(emp3))
        println(emp1.eq(emp4))
        
        println("Example of ne method")
        println(emp1.ne(emp2))
        println(emp1.ne(emp3))
        println(emp1.ne(emp4))
    }
}

Output

Example of eq method
false
false
true
Example of ne method
true
true
false

Explanation

In the above code, we have illustrated the working of eq() and ne() methods in scala. We have a class employee that stores empName (storing employee name) and salary (i hope mine could be that much). For this class, we have created 4 objects. For comparing the equality of these objects we have used the eq() method:

emp1.eq(emp2), returns false. Both objects have different values.

emp1.eq(emp3), returns false. The values of both objects are the same but they don't refer to the same memory block.

emp1.eq(emp4), returns true. Both objects refer to the same memory block.

We have also, compared the negations of equality of the objects using the ne() method.

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.