Sự khác biệt giữa So sánh và So sánh trong Java

Mục lục:

Anonim

So sánh trong Java là gì?

So sánh trong Java là một đối tượng để so sánh chính nó với một đối tượng khác. Nó giúp sắp xếp danh sách các đối tượng tùy chỉnh. Giao diện java.lang.Comp so sánh nên được một lớp triển khai để so sánh các thể hiện của nó. Mảng các đối tượng thực hiện giao diện có thể so sánh được tự động sắp xếp theo các phương thức Arrays.sort và Collections.sort.

Trong hướng dẫn So sánh và So sánh trong Java này, bạn sẽ học:

  • So sánh trong Java là gì?
  • Comparator trong Java là gì?
  • Phương pháp được sử dụng trong So sánh:
  • Phương pháp được sử dụng trong Bộ so sánh:
  • Sự khác biệt giữa So sánh và So sánh trong Java
  • Các phương pháp hay nhất khi sử dụng trình so sánh và có thể so sánh trong Java

Comparator trong Java là gì?

Comparator trong Java là một đối tượng để so sánh các đối tượng khác nhau của các lớp khác nhau. Giao diện so sánh trong Java cũng được sử dụng để sắp xếp các đối tượng của các lớp do người dùng định nghĩa. Nó bao gồm hai phương thức giao diện so sánh quan trọng được gọi là so sánh (Object obj1, Object obj2) và bằng (Phần tử đối tượng).

SỰ KHÁC BIỆT CHÍNH:

  • So sánh cung cấp phương thức CompareTo () để sắp xếp các phần tử trong Java trong khi Comparator cung cấp phương thức so sánh () để sắp xếp các phần tử trong Java.
  • Giao diện so sánh có trong gói java.lang trong khi giao diện So sánh có trong gói java.util.
  • So sánh cung cấp trình tự sắp xếp duy nhất trong khi Trình so sánh cung cấp nhiều trình tự sắp xếp.
  • So sánh có ảnh hưởng đến lớp gốc trong khi trình so sánh không ảnh hưởng đến lớp gốc.

Phương pháp được sử dụng trong So sánh:

Sau đây là một phương pháp quan trọng được sử dụng trong giao diện So sánh:

So với():

Phương thức CompareTo () được sử dụng để thực hiện sắp xếp tự nhiên trên chuỗi. Ý nghĩa của sắp xếp tự nhiên là thứ tự sắp xếp áp dụng trên đối tượng, ví dụ: thứ tự số để sắp xếp số nguyên, thứ tự bảng chữ cái cho Chuỗi, v.v.

Cú pháp của phương thức CompareTo () như sau:

int compareTo(T obj)

Trong cú pháp trên, T biểu thị loại đối tượng mà bạn sẽ so sánh.

Phương thức CompareTo () so sánh đối tượng với T obj.

Đầu ra:

  • Nó trả về 0 nếu các giá trị bằng nhau.
  • Trong trường hợp, nếu đối tượng có giá trị nhỏ hơn, thì phương thức này trả về giá trị âm.
  • Nếu đối tượng có giá trị cao hơn, nó sẽ trả về giá trị dương.

Ví dụ về phương thức CompareTo ():

Ví dụ về chương trình so sánh Java sau đây cho thấy sự so sánh của hai ký tự, "a" và "b". Ký tự "a" đứng trước "b" theo thứ tự bảng chữ cái.

Do đó, sản lượng là -1. Ký tự "b" đứng sau "a" theo thứ tự bảng chữ cái. Do đó đầu ra là 1. Ký tự "a" và "b" cả hai đều tương đương. Do đó đầu ra là 0.

public class Sample_String {public static void main(String[] args) {String str_Sample = "a";System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));str_Sample = "b";System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));str_Sample = "b";System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));}}

Đầu ra

Compare To 'a' b is : -1Compare To 'b' a is : 1Compare To 'b' b is : 0

Phương pháp được sử dụng trong Bộ so sánh:

Sau đây là các phương pháp quan trọng được sử dụng trong giao diện so sánh:

So sánh():

So sánh () cho phép bạn sắp xếp thứ tự các đối tượng. Để làm điều này, bạn phải tạo một lớp thực hiện giao diện so sánh. Sau đó, bạn cần ghi đè phương thức so sánh của nó.

Cú pháp của phương thức so sánh () như sau:

compare(Object obj1, Object obj2)

Trong cú pháp trên, obj1 và obj2 là hai đối tượng mà bạn phải so sánh bằng phương thức so sánh ().

Đầu ra:

  • Nó trả về một số nguyên âm nếu đối số đầu tiên nhỏ hơn đối số thứ hai.
  • Trả về 0 nếu đối số đầu tiên và đối số thứ hai bằng nhau.
  • Phương thức này có thể trả về một số nguyên dương, trong trường hợp đối số đầu tiên lớn hơn đối số thứ hai.

Bạn phải đảm bảo rằng mối quan hệ là bắc cầu. Ví dụ: ((so sánh (a, b)> 0) && (so sánh (b, c)> 0)) ngụ ý so sánh (a, c)> 0.

Ví dụ về phương pháp so sánh:

Trong chương trình dưới đây của ví dụ về trình so sánh Java, có 6 biến. "x", "y", "p", "q", "r" và "s". Đầu ra là -1 là giá trị của "x", 20 nhỏ hơn giá trị của "y", 30. Đầu ra là 0 vì giá trị của "p", 40 bằng giá trị của "q", 40 .

import java.lang.Integer;public class example {public static void main(String args[]){int x = 20;int y = 30;// as 10 less than 20,// Output will be a value less than zeroSystem.out.println(Integer.compare(x, y));int p = 40;int q = 40;// as 30 equals 30,// Output will be zeroSystem.out.println(Integer.compare(p, q));int r = 20;int s = 7;// as 15 is greater than 8,// Output will be a value greater than zeroSystem.out.println(Integer.compare(r, s));}}

Đầu ra:

-101

Bằng ():

Equals () xác minh xem đối tượng number có bằng đối tượng được truyền dưới dạng đối số hay không.

Cú pháp của phương thức equals () như sau:

công khai boolean bằng (Đối tượng o)

Phương thức này nhận hai tham số 1) bất kỳ đối tượng nào 2) giá trị trả về. Nó trả về true nếu đối số được truyền vào không phải là null và là một đối tượng cùng loại có cùng giá trị số.

Ví dụ về phương pháp bằng:

Trong ví dụ dưới đây, chúng tôi đang so sánh bốn biến với nhau. Ba biến có kiểu số nguyên và một biến kiểu ngắn. Kết quả đầu tiên là sai vì giá trị của p, là 5, không bằng giá trị của q, là 20.

Kết quả thứ hai là true vì giá trị của biến p và r là như nhau, là 5. Cuối cùng, kết quả đầu ra là false, vì biến p và s có các giá trị được gán khác nhau.

public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}

Đầu ra

falsetruefalse

Sự khác biệt giữa So sánh và So sánh trong Java

Sự khác biệt giữa So sánh và So sánh trong Java

Dưới đây là những điểm khác biệt chính giữa Java So sánh và So sánh:

Có thể so sánh được Máy so sánh
So sánh cung cấp phương thức CompareTo () để sắp xếp các phần tử trong Java. Comparator cung cấp phương thức so sánh () để sắp xếp các phần tử trong Java.
Giao diện có thể so sánh được có trong gói java.lang. Giao diện so sánh có trong gói java.util.
Logic của việc sắp xếp phải nằm trong cùng một lớp có đối tượng mà bạn sẽ sắp xếp. Logic của sắp xếp nên ở trong lớp riêng biệt để viết các cách sắp xếp khác nhau dựa trên các thuộc tính khác nhau của các đối tượng.
Lớp có các đối tượng bạn muốn sắp xếp phải triển khai giao diện có thể so sánh được. Lớp, có các đối tượng bạn muốn sắp xếp, không cần triển khai giao diện so sánh.
Nó cung cấp các trình tự sắp xếp đơn lẻ. Nó cung cấp nhiều trình tự sắp xếp.
Phương pháp này có thể sắp xếp dữ liệu theo thứ tự sắp xếp tự nhiên. Phương pháp này sắp xếp dữ liệu theo thứ tự sắp xếp tùy chỉnh.
Nó ảnh hưởng đến lớp ban đầu. tức là, lớp thực tế bị thay đổi. Nó không ảnh hưởng đến lớp gốc, tức là lớp thực tế không bị thay đổi.
Được triển khai thường xuyên trong API bởi: Lịch, Lớp gói, Ngày và Chuỗi. Nó được triển khai để sắp xếp các trường hợp của các lớp bên thứ ba.
Tất cả các lớp wrapper và lớp String triển khai giao diện có thể so sánh được. Các lớp được triển khai duy nhất của Comparator là Collator và RuleBasedColator.

Các phương pháp hay nhất khi sử dụng trình so sánh và có thể so sánh trong Java

  • Sử dụng giao diện có thể so sánh khi so sánh là tiêu chuẩn cho lớp cụ thể.
  • Bạn có thể sử dụng lambdas với bộ so sánh.
  • Nhiều lớp lõi có sẵn trong việc triển khai một giao diện có thể so sánh được.
  • Có thể sử dụng TreeSet và TreeMap hoặc trong khi phân loại Set hoặc Map.
  • Phương thức CompareTo () hoạt động với bộ so sánh cũng như so sánh.
  • Chỉ sử dụng giao diện so sánh khi bạn
  • Phương thức CompareTo () sẽ trả về một số nguyên dương nếu đối tượng đầu tiên lớn hơn đối tượng kia, âm nếu nó thấp hơn và bằng 0 nếu cả hai đều giống nhau.