Rate this post

Trong Java, phương thức equals() là một phương thức của lớp Object, được kế thừa bởi tất cả các lớp trong ngôn ngữ. Nó cho phép bạn so sánh giá trị hai đối tượng có bằng nhau hay không. Phương thức equals() sẽ trả về true nếu hai đối tượng có cùng giá trị, hoặc false nếu chúng không bằng nhau.

Các bài viết liên quan:

Mặc định, phương thức equals() so sánh hai đối tượng bằng cách so sánh địa chỉ bộ nhớ của chúng (tức là hai đối tượng bằng nhau chỉ khi chúng chính là cùng một đối tượng trong bộ nhớ). Tuy nhiên, các lớp tùy chỉnh có thể ghi đè phương thức equals() để so sánh giá trị của đối tượng theo cách khác.

Ví dụ:

String str1 = "hello";
String str2 = "world";
String str3 = "hello";
System.out.println(str1.equals(str2)); // output: false
System.out.println(str1.equals(str3)); // output: true

Trong ví dụ trên, chúng ta so sánh giá trị của hai chuỗi str1 và str2, vì hai chuỗi này có giá trị khác nhau nên kết quả trả về là false, còn khi so sánh giá trị của str1 và str3 chúng ta sẽ thấy hai chuỗi này có giá trị giống nhau nên kết quả trả về là true.

Cần lưu ý rằng, khi so sánh giá trị của hai đối tượng sử dụng equals() thì nó sẽ không phân biệt chữ hoa và chữ thường. Nếu bạn muốn so sánh hai đối tượng với nhau và cả chữ hoa và chữ thường thì có thể sử dụng phương thức equalsIgnoreCase().

Tuy nhiên, Nếu bạn muốn so sánh hai đối tượng với nhau trong một cách mã hóa Unicode chuẩn thì bạn có thể sử dụng phương thức equals() của lớp java.text.collator

một vài ví dụ sử dụng equals trong java

Ví dụ 1: So sánh hai chuỗi

String str1 = "Hello";
String str2 = "World";
String str3 = "hello";
System.out.println(str1.equals(str2)); // output: false
System.out.println(str1.equals(str3)); // output: false

Trong ví dụ trên, chúng ta so sánh giá trị của hai chuỗi str1 và str2 và hai chuỗi str1 và str3 chúng ta sẽ thấy hai chuỗi này có giá trị khác nhau nên kết quả trả về là false.

Ví dụ 2: So sánh hai số nguyên

Integer num1 = 10;
Integer num2 = 20;
Integer num3 = 10;
System.out.println(num1.equals(num2)); // output: false
System.out.println(num1.equals(num3)); // output: true

Trong ví dụ trên, chúng ta so sánh giá trị của hai đối tượng Integer num1 và num2 và hai đối tượng num1 và num3 chúng ta sẽ thấy hai đối tượng này có giá trị giống nhau nên kết quả trả về là true.

Ví dụ 3: So sánh hai đối tượng custom

class Person {
    String name;
    int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {
            Person person = (Person) obj;
            return this.name.equals(person.name) && this.age == person.age;
        }
        return false;
    }
}

Person person1 = new Person("John", 25);
Person person
2 = new Person("Jane", 30);
Person person3 = new Person("John", 25);
System.out.println(person1.equals(person2)); // output: false
System.out.println(person1.equals(person3)); // output: true

Trong ví dụ trên, chúng ta tạo một lớp Person và ghi đè lại phương thức equals() để so sánh giá trị của hai đối tượng theo tên và tuổi. Khi so sánh person1 và person2 chúng ta sẽ thấy hai đối tượng này có giá trị khác nhau nên kết quả trả về là false. Còn khi so sánh person1 và person3 chúng ta sẽ thấy hai đối tượng này có giá trị giống nhau nên kết quả trả về là true.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now