Cách Sắp Xếp Danh Sách Theo Thứ Tự / How To Sort A List/Array By ...
Có thể bạn quan tâm
Tổng cộng có ít nhất 4 Classes:
- Class chứa hàm Main để chạy chương trình
- Class chủ thể (Object) để tạo một object và chứa các hàm liên quan đến chủ thể
- Class List để tạo danh sách các object và chứa các hàm liên quan đến list
- Class so sánh các chủ thể trong list theo thành phần và thứ tự mong muốn
(2) Object Class
Class này dùng để tạo các chủ thể riêng lẻ gồm:
- Các thông tin/giá trị mà các chủ thể cần có
- Constructor để hàm main tạo được một chủ thể
- Hàm lấy từng thông tin nhỏ của chủ thể
Ví dụ mình có 5 sản phẩm cần đăng lên website, mỗi sản phẩm gồm thông tin là tên sản phẩm và giá tiền. Vậy thì mình phải khởi tạo các mục thông tin cho nó với thông tin mặc định: tên là “unknow – không biết” và giá tiền “0” đồng. Sau đó mình tạo Constructor để class main có thể tạo một sản phẩm mới. Sau đó mình tạo một hàm để lấy được thông tin giá tiền sau khi tạo sản phẩm.
public class SanPham { //tạo các trường thông tin private String name = "unknown"; private int price = 0; //đây là constructor public Item(String name, int price){ this.name = name; this.price = price; } //tạo hàm lấy thông tin giá tiền public int getPrice(){ return this.price; } }(3) Class List và hàm sắp xếp
Class này cần có:
- Tạo một bảng danh sách chứa thông tin
- Hàm thêm một sản phẩm vào danh sách
- Hàm sắp xếp để tiến hành sắp xếp danh sách
- Hàm in ra
Lúc này, SortByPrice sẽ hiện màu đỏ vì chưa được tạo, nhưng ko sao, bước tiếp theo thì mình sẽ tạo.
(4) Class Comparator (mục cần so sánh)
Trong ví dụ này, mình giả sử là sắp xếp theo giá tiền từ thấp đến cao (hay thấy trong các trang mua bán trực tuyến)
public class SortByPrice implements Comparator <Object> { public int compare(Object o1, Object o2){ return o1.getPrice() - o2.getPrice(); } }Lưu ý: hàm compare này luôn trả về int (tức là số), nhưng nhiều khi mục mình cần so sánh không phải là số (int) mà là sắp xếp theo thứ tự chữ cái abc (String), ví dụ như sắp xếp theo tên sản phẩm thì sao? Thì chỉ cần thay dòng return thành vầy:
return o1.getName().compareTo(o2.getName());Muốn thứ tự ngược lại thì chỉ cần đổi o2 trước o1 là được.
(1) Class Main
Okay, công tác chuẩn bị đã xong rồi, giờ chỉ cần viết lệnh ở hàm main rồi tận hưởng thành quả thôi 😛
public class BoatMaker { public static void main(String[] args) { //tạo một danh sách DanhSach banHang = new DanhSach(); //thêm sản phẩm vào danh sách mới tạo banHang.addItem(new Item("Ao", 10000)); banHang.addItem(new Item("Quan", 5000)); //chạy hàm sắp xếp banHang.byPrice(); System.out.println(banHang); } } }Share this:
- X
Related
Từ khóa » Hàm Sắp Xếp Tên Java
-
Sắp Xếp Chuỗi Theo Thứ Thự Bảng Chữ Cái - Freetuts
-
Java - Sắp Xếp Danh Sách Họ Và Tên Theo Thứ Tự Từ điển - YouTube
-
Sắp Xếp Trong Java 8 - Viblo
-
So Sánh Và Sắp Xếp Trong Java - Openplanning
-
[Java Cơ Bản] Sắp Xếp đối Tượng Trong Java Với Comparable Và ...
-
Làm Thế Nào Tôi Có Thể Sắp Xếp Một Danh Sách Theo Thứ Tự Abc?
-
Bài Tập Java - Sắp Xếp Mảng Theo Thứ Tự Tăng Dần - VietTuts
-
Sắp Xếp Theo Nhiều Tiêu Chí Collection Trong Java - Dạy Nhau Học
-
Cách Sắp Xếp Một Mảng Trong Java - TutorialCup
-
Java: Sắp Xếp Trong Collection | V1Study
-
[Java Cơ Bản]Sắp Xếp Mảng Các đối Tượng | Code And Play Game
-
Sắp Xếp Danh Sách Theo Bảng Chữ Cái Tiếng Việt - CongDongJava
-
Bài 36: Sắp Xếp Các đối Tượng Trong ArrayList - Developer Softwares
-
[JAVA] QUICK SORT: Thuật Toán Sắp Xếp Nhanh - NIIT - ICT Hà Nội