Đề XuấT, 2024

Editor Choice

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

Cả So sánh và So sánh đều là các giao diện chung trong Java được sử dụng để so sánh các thành phần dữ liệu của các đối tượng. Giao diện so sánh có trong gói java.lang và giao diện so sánh có trong gói java.util. Sự khác biệt cơ bản giữa các giao diện So sánh và So sánh là giao diện So sánh cung cấp trình tự sắp xếp đơn trong khi đó, giao diện So sánh cung cấp nhiều trình tự sắp xếp. Có một số khác biệt khác giữa giao diện So sánh và So sánh mà chúng ta sẽ nghiên cứu trong Biểu đồ so sánh.

Biểu đồ so sánh

Cơ sở để so sánhSo sánhSo sánh
Căn bảnGiao diện so sánh chỉ cho phép trình tự sắp xếp duy nhất.Giao diện so sánh cho phép nhiều chuỗi Sắp xếp.
GóiGiao diện so sánh có trong gói java.lang.Giao diện so sánh có mặt trong gói java.util.
Phương phápGiao diện so sánh chỉ chứa phương thức duy nhất
công khai int so sánhTo (Object obj);
Giao diện so sánh chứa hai phương thức
so sánh int int (Object obj1, Object obj2)
boolean bằng (Object obj)
Thực hiệnGiao diện so sánh được thực hiện bởi lớp có đối tượng được so sánh.Giao diện so sánh được thực hiện bởi một lớp kiểm duyệt thay vì lớp có đối tượng được so sánh.
So sánhPhương thức so sánh (Object obj) so sánh đối tượng được sử dụng để gọi phương thức với đối tượng đã chỉ định truyền cho phương thức.Phương thức so sánh (Object obj1, Object obj2) so sánh cả hai đối tượng đã chỉ định được truyền cho phương thức.
Danh sách / mảngKhi một danh sách các đối tượng của kiểu so sánh phải được so sánh, lớp Collection sẽ cung cấp một phương thức tức là Collections.sort (List lst).Khi một danh sách các đối tượng của kiểu so sánh phải được so sánh, lớp Collection cung cấp một phương thức tức là
Bộ sưu tập.sort (Danh sách, So sánh).

Định nghĩa so sánh

So sánh là một giao diện có sẵn trong gói java.lang. Một lớp thực hiện giao diện So sánh, để sắp xếp đối tượng của nó theo thứ tự tự nhiên. Các đối tượng được sắp xếp theo thứ tự tự nhiên có nghĩa là các đối tượng được so sánh bởi các giá trị ASCII của chúng. Các lớp thực hiện giao diện so sánh là các lớp Byte, Character, Double, Float, Long, Short, String và Integer. Ngay cả lớp Date và Calander cũng thực hiện giao diện So sánh.

Giao diện so sánh chỉ chứa một phương thức là so sánh (Object obj). Phương thức này so sánh đối tượng được sử dụng để gọi phương thức với đối tượng được chỉ định trong tham số. Cú pháp của phương thức như sau:

 công khai int so sánhTo (Object obj); 

Phương thức so sánh (Object obj) trả về 0, khi cả hai đối tượng được so sánh bởi phương thức chứa cùng một giá trị, nó trả về giá trị -ve nếu đối tượng gọi nhỏ hơn đối tượng đã chỉ định và trả về giá trị + ve nếu đối tượng gọi có giá trị lớn hơn giá trị so với đối tượng đã chỉ định. Lớp Bộ sưu tập cung cấp một phương thức sắp xếp để sắp xếp các phần tử của danh sách. Các phần tử danh sách (và mảng) của kiểu So sánh có thể được sắp xếp bằng cách sử dụng phương thức Bộ sưu tập bộ sưu tập (Danh sách lst).

Định nghĩa so sánh

Trình so sánh là một giao diện có sẵn trong gói java.util. Bộ so sánh giao diện không được triển khai trên lớp có các đối tượng được so sánh thay vào đó lớp riêng biệt thực hiện giao diện Bộ so sánh để logic sắp xếp được áp dụng cho từng thành phần dữ liệu của đối tượng trong một lớp khác nhau. Bộ so sánh chứa hai phương thức như sau:

 công khai so sánh (Object obj1, Object obj2) và boolean bằng (Object obj) 

Phương thức so sánh () ở trên so sánh đối tượng thứ nhất obj1, với đối tượng thứ hai obj2. Phương thức so sánh () trả về 0 khi cả hai đối tượng được so sánh bởi phương thức chứa cùng một giá trị, nó trả về giá trị -ve nếu đối tượng obj1 nhỏ hơn thì đối tượng obj2 và trả về giá trị + ve nếu đối tượng obj1 có giá trị lớn hơn so với đến đối tượng obj2. Các phương thức equals () kiểm tra nếu đối tượng được chỉ định bằng với đối tượng gọi. Phương thức equals () trả về true nếu cả hai đối tượng được so sánh bằng nhau, nó trả về false . Lớp Bộ sưu tập cung cấp phương thức để sắp xếp các phần tử của danh sách và loại so sánh. Các phần tử danh sách của các loại bộ so sánh được sắp xếp theo phương thức Collections.sort (Danh sách, Bộ so sánh).

Sự khác biệt chính giữa so sánh và so sánh

  1. Giao diện so sánh cho phép trình tự sắp xếp đơn có nghĩa là bạn chỉ có thể so sánh phần tử dữ liệu duy nhất của đối tượng trong phương thức so sánh () trên mặt khác Giao diện so sánh cho phép nhiều trình tự sắp xếp có nghĩa là bạn có thể so sánh nhiều phần tử dữ liệu của đối tượng.
  2. Giao diện so sánh được thực hiện bởi lớp có các đối tượng được so sánh vì logic sắp xếp được xác định bên trong cùng một lớp. Mặt khác, giao diện Trình so sánh không được thực hiện bởi lớp có các đối tượng được so sánh vì logic sắp xếp được xác định trong các lớp riêng biệt nơi mỗi lớp định nghĩa sắp xếp trên thành phần dữ liệu duy nhất của đối tượng và các lớp xác định này thực hiện giao diện Trình so sánh .
  3. Giao diện so sánh nằm bên trong gói java.lang trong khi đó, giao diện so sánh nằm bên trong gói java.util.
  4. Giao diện so sánh chỉ khai báo một phương thức là so sánh (Object obj) trong khi đó, giao diện so sánh khai báo hai phương thức đó là so sánh (Object obj1, Object obj2) và bằng (Object obj).
  5. Phương thức so sánh (Object obj) trong phương thức so sánh gọi đối tượng với đối tượng đã chỉ định được truyền cho phương thức trong khi đó, phương thức so sánh (Object obj1, Object obj2) so sánh các đối tượng obj1 với obj2 được truyền cho phương thức.
  6. Lớp Bộ sưu tập cung cấp một phương thức sắp xếp, Bộ sưu tập (Danh sách lst), để sắp xếp các đối tượng của kiểu So sánh. Lớp Bộ sưu tập cung cấp phương thức sắp xếp Collections.sort (Danh sách, Trình so sánh) để sắp xếp các đối tượng của kiểu Trình so sánh.

Phần kết luận:

Nếu bạn muốn sắp xếp các đối tượng theo thứ tự tự nhiên, thì bạn có thể sử dụng giao diện so sánh khác mà bạn muốn sắp xếp các đối tượng dựa trên bất kỳ thuộc tính nào sau đó giao diện So sánh được sử dụng.

Top