Giao diện so sánh trong Java với các ví dụ là gì?

Giao Dien So Sanh Trong Java Voi Cac Vi Du La Gi



Trong Java, giao diện Bộ so sánh được sử dụng để xác định hàm so sánh có thể được sử dụng để sắp xếp một tập hợp các đối tượng. Nó cho phép sắp xếp các đối tượng dựa trên tiêu chí tùy chỉnh thay vì so sánh mặc định dựa trên thứ tự tự nhiên. Nó có nhiều ứng dụng khác nhau để tùy chỉnh các chức năng theo nhu cầu. Bài viết này sẽ giải thích giao diện Bộ so sánh cùng với nhiều ví dụ trong Java.

Giao diện so sánh trong Java với các ví dụ là gì?

Giao diện Bộ so sánh chứa các phương thức so sánh () và bằng (). Phương thức đầu tiên được sử dụng để tính toán hai đối tượng bằng cách trả về một giá trị số nguyên. Phương pháp khác được sử dụng để tính toán hai đối tượng so sánh cho bằng nhau.

Dưới đây là các ví dụ khác nhau về cách sử dụng giao diện Bộ so sánh trong Java:







Ví dụ 1: Sắp xếp Danh sách dựa trên Độ dài

Trong ví dụ này, một danh sách các chuỗi được xem xét và sắp xếp chúng dựa trên độ dài của chúng thay vì thứ tự bảng chữ cái:



nhập khẩu java.util.ArrayList ;

nhập khẩu java.util.Collections ;

nhập khẩu java.util.Comparator ;

nhập khẩu java.util.List ;

công cộng lớp học Chủ yếu {

công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {

Danh sách < Sợi dây > danh sách = mới Lập danh sách <> ( ) ;

danh sách. thêm vào ( 'John' ) ;

danh sách. thêm vào ( 'bốp' ) ;

danh sách. thêm vào ( 'Alice' ) ;

bộ sưu tập . loại ( danh sách ) ;

Hệ thống . ngoài . bản in ( danh sách ) ;

bộ sưu tập . loại ( danh sách, mới Bộ so sánh độ dài chuỗi ( ) ) ;

Hệ thống . ngoài . bản in ( danh sách ) ;

}

} // Một lớp được định nghĩa

lớp học Bộ so sánh độ dài chuỗi dụng cụ so sánh < Sợi dây > {

công cộng int so sánh ( Sợi dây s1, Sợi dây s2 ) {

trở lại số nguyên . so sánh ( s1. chiều dài ( ) , s2. chiều dài ( ) ) ;

}

}

Mô tả của mã trên được đưa ra dưới đây:



  • Trước tiên, hãy tạo một lớp Trình so sánh tùy chỉnh có tên là StringLengthComparator để triển khai giao diện Trình so sánh.
  • Nó ghi đè phương thức so sánh () để so sánh độ dài của hai chuỗi.
  • Cuối cùng, hãy chuyển một thể hiện cho phương thức the.sort() để sắp xếp danh sách bằng bộ so sánh tùy chỉnh của chúng tôi.

đầu ra





Đầu ra đầu tiên là kết quả của việc sắp xếp danh sách theo thứ tự tự nhiên, trong khi đầu ra thứ hai là kết quả của việc sắp xếp danh sách bằng bộ so sánh tùy chỉnh của chúng tôi dựa trên độ dài của mỗi chuỗi.



Ví dụ 2: Sắp xếp các đối tượng dựa trên một trường cụ thể

Một ví dụ khác được thực hiện để sắp xếp các đối tượng dựa trên một trường cụ thể. Giao diện Bộ so sánh được sử dụng để đạt được điều này:

nhập khẩu java.util.ArrayList ;

nhập khẩu java.util.Collections ;

nhập khẩu java.util.Comparator ;

nhập khẩu java.util.List ;

công cộng lớp học Chủ yếu {

công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {

Danh sách < Người > người = mới Lập danh sách <> ( ) ; // Gán tên, tuổi và lương

người. thêm vào ( mới Người ( 'Alice' , 25 , 50000 ) ) ;

người. thêm vào ( mới Người ( 'bốp' , 30 , 75000 ) ) ;

người. thêm vào ( mới Người ( 'Charlie' , hai mươi , 40000 ) ) ;

so sánh < Người > so sánh lương = mới so sánh < Người > ( ) {

// Sắp xếp người dựa trên mức lương

công cộng int so sánh ( Người p1, Người p2 ) {

trở lại số nguyên . so sánh ( p2. nhận lương ( ) , p1. nhận lương ( ) ) ;

}

} ;

bộ sưu tập . loại ( người, người so sánh tiền lương ) ; trở lại sắp xếp giá trị

// In danh sách người đã được sắp xếp

( người người : người ) {

Hệ thống . ngoài . bản in ( người ) ;

}

}

}

lớp học Người { //Xác định tên, tuổi, lương

riêng tư Sợi dây tên ; // phạm vi bên trong một lớp
riêng tư int tuổi ;
riêng tư int lương ;

công cộng Người ( Sợi dây tên, int tuổi, int lương ) {
cái này . tên = tên ;
cái này . tuổi = tuổi ;
cái này . lương = lương ;
}
công cộng Sợi dây getName ( ) {
trở lại tên ;
}
công cộng int lấy tuổi ( ) {
trở lại tuổi ;
}
công cộng int nhận lương ( ) {
trở lại lương ;
}
công cộng Sợi dây toString ( ) {
trở lại tên + ' (tuổi ' + tuổi + ', lương $' + lương + ')' ;
}
}

Mô tả của mã được đưa ra dưới đây:

  • Một lớp gọi là “ Người ” với ba trường: “ tên ”, “ tuổi ', Và ' lương ” được xem xét.
  • Sau đó, sắp xếp một bộ sưu tập các đối tượng Person tùy thuộc vào mức lương của họ theo thứ tự giảm dần.

đầu ra

Đầu ra cho thấy rằng tiền lương đã được sắp xếp theo thứ tự giảm dần.

Phần kết luận

Trong Java, giao diện Bộ so sánh là một công cụ mạnh mẽ cho phép người dùng sắp xếp các đối tượng dựa trên các tiêu chí tùy chỉnh. Nó ghi đè phương thức so sánh (), người dùng có thể xác định hàm so sánh của riêng mình và sử dụng nó để sắp xếp các bộ sưu tập đối tượng theo nhiều cách khác nhau. Bài viết này đã giải thích về giao diện Bộ so sánh cùng với các ví dụ thực tế trong Java.