Bạn cần phải thực hiện các giao diện so sánh
implements Comparable
phương pháp mà làm việc là
public int compareTo(Object obj)
{
}
Xin lưu ý đối tượng đó thường được thay thế bằng một đầy đủ về loại vì cú pháp chung có thể được sử dụng trong câu lệnh thực hiện (được hiển thị bên dưới).
Một ví dụ đầy đủ là here in the tutorial docs hy vọng điều này giúp
Một ví dụ đầy đủ (lấy từ liên kết ở trên là như sau), tôi đã thêm này chỉ trong trường hợp các liên kết đi chết tại một số điểm
import java.util.*;
public class Name implements Comparable<Name> {
private final String firstName, lastName;
public Name(String firstName, String lastName) {
if (firstName == null || lastName == null)
throw new NullPointerException();
this.firstName = firstName;
this.lastName = lastName;
}
public String firstName() { return firstName; }
public String lastName() { return lastName; }
public boolean equals(Object o) {
if (o == null || !(o instanceof Name))
return false;
Name n = (Name) o;
return n.firstName.equals(firstName) && n.lastName.equals(lastName);
}
public int hashCode() {
return 31*firstName.hashCode() + lastName.hashCode();
}
public String toString() {
return firstName + " " + lastName;
}
public int compareTo(Name n) {
int lastCmp = lastName.compareTo(n.lastName);
return (lastCmp != 0 ? lastCmp : firstName.compareTo(n.firstName));
}
}
Mã khách hàng từ bài viết là:
import java.util.*;
public class NameSort {
public static void main(String[] args) {
Name nameArray[] = {
new Name("John", "Smith"),
new Name("Karl", "Ng"),
new Name("Jeff", "Smith"),
new Name("Tom", "Rich")
};
List<Name> names = Arrays.asList(nameArray);
Collections.sort(names);
System.out.println(names);
}
}
Nguồn
2012-04-13 17:34:41
Liệu giáo sư của bạn muốn bạn để thực hiện các thuật toán sắp xếp cho mình? –
những gì @joncarl nói là một điểm tốt, nếu như vậy bạn cần phải nhìn vào bubbleort (nó khá dễ dàng để thực hiện nhưng không quá nhanh) –
Vâng, tôi sẽ thực hiện chèn alg sắp xếp. – user1253201