cuốn sách gpt4 ai đã làm

Cách sắp xếp theo tên và tuổi trong java

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:05:39 27 4
mua khóa gpt4 Nike

Tôi mới làm quen với Java 8. Tôi chỉ muốn sắp xếp theo tên. Nhưng điều kiện là: nếu có trùng tên thì sẽ sắp xếp theo độ tuổi.

Ví dụ đầu vào của tôi là

tarun 28
chạy 29
Varun 12
chạy 22

输出应该是

chạy 22
chạy 29
tarun 28
Varun 12

Nhưng tôi nhận được một cái gì đó như

Varun 12
chạy 22
tarun 28
chạy 29

có nghĩa là nó chỉ được sắp xếp theo độ tuổi hoặc tên.

Đây là mã được triển khai:

Lớp POJO:

lớp người {

Tên chuỗi;

int tuổi;

Người của công chúng() {
}

công khai int getAge() {
tuổi trở về;
}

public void setAge(int age) {
this.age = tuổi;
}

Chuỗi công khai getFname() {
trả lại tên;
}

public void setFname(String fname) {
this.fname = fname;
}

public Person(String fname, int age) {
this.fname = fname;

this.age = tuổi;
}

@Ghi đè
Chuỗi công khai toString() {
trả về tên + tuổi;
}
}

Lớp kiểm tra:

Kiểm tra lớp công khai {

public static void main(String[] args) {
Danh sách người = new ArrayList<>();
people.add(new Person("tarun", 28));
people.add(Người mới("arun", 29));
people.add(new Person("varun", 12));
people.add(Người mới ("arun", 22));

Collections.sort(persons, new Comparator() {

@Ghi đè
public int so sánh(Người t, Người t1) {
return t.getAge() - t1.getAge();
}
});
System.out.println(người);

}
}

câu trả lời hay nhất

Hiện tại bạn đang a) chỉ so sánh theo một thuộc tính và b) chưa thực sự tận dụng được các tính năng mới của Java 8.

Đối với Java 8 bạn có thể sử dụng tài liệu tham khảo phương phápvà các bộ so sánh có chuỗi, như thế này:

Collections.sort(persons, Comparator.comparing(Person::getFname)
.thenComparingInt(Person::getAge));

Điều này sẽ so sánh hai Person trường hợp, đầu tiên bởi họ tên và - nếu bằng nhau - thông qua age (Đã tối ưu hóa một chútthenComparingInt để tránh đấm bốc).

Về java - Cách sắp xếp tên và tuổi trong java, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/45769908/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress