Trong chương trình này, bạn sẽ học cách sắp xếp danh sách mảng các đối tượng tùy chỉnh theo thuộc tính đã cho của chúng trong Java.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Java sau:
- Lớp và đối tượng Java
- Lớp Java ArrayList
Ví dụ: Sắp xếp Mảng Danh sách các Đối tượng Tùy chỉnh theo Thuộc tính
import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )
Đầu ra
A Aa BXZ
Trong chương trình trên, chúng ta đã định nghĩa một CustomObject
lớp có thuộc String
tính, customProperty.
Chúng tôi cũng đã thêm một hàm tạo khởi tạo thuộc tính và một hàm getter getCustomProperty()
trả về customProperty.
Trong main()
phương thức, chúng tôi đã tạo một danh sách mảng danh sách đối tượng tùy chỉnh, được khởi tạo với 5 đối tượng.
Để sắp xếp danh sách với thuộc tính đã cho, chúng tôi sử dụng sort()
phương pháp của danh sách . Các sort()
phương pháp có trong danh sách được sắp xếp (danh sách được sắp xếp cuối cùng cũng là như nhau) và một comparator
.
Trong trường hợp của chúng tôi, trình so sánh là lambda
- lấy hai đối tượng từ danh sách o1 và o2,
- so sánh
compareTo()
phương thức customProperty của hai đối tượng , - và cuối cùng trả về số dương nếu thuộc tính của o1 lớn hơn của o2, số âm nếu thuộc tính của o1 nhỏ hơn của o2 và bằng 0 nếu chúng bằng nhau.
Dựa trên điều này, danh sách được sắp xếp dựa trên thuộc tính ít nhất đến lớn nhất và được lưu trữ trở lại danh sách.