排序任何类型的对象,java

BLL*_*L27 1 java arrays sorting

我试图改变以下代码中的排序方法来排序任何类型的对象,而不仅仅是字符串,但有点难过,欢迎所有建议.

class SortNames {

static void sort(String[] s) {
    for (int i = 0; i<s.length; i++) {
        for (int j = i+1; j < s.length; j++) {
            if (s[i].compareTo(s[j])>0) {
                String t;
                t = s[i]; s[i] = s[j]; s[j] = t;
            }
        }
    }
}

public static void main(String[] args) {
    String[] names = {"Pete","Jill","May","Anne","Tim"};             
    sort(names);
    for (int i=0; i<names.length; i++) 
        System.out.println(names[i]);
}
}
Run Code Online (Sandbox Code Playgroud)

Joã*_*lva 5

打开SortNames进入SortNames<T extends Comparable<? super T>>,并更改String[]到T[],该是多么Collections.sort()的工作:

public class SortNames<T extends Comparable<? super T>> {
    public void sort(T[] s) {
        for (int i = 0; i<s.length; i++) {
            for (int j = i+1; j < s.length; j++) {
                if (s[i].compareTo(s[j])>0) {
                    T t = s[i]; s[i] = s[j]; s[j] = t;
                }
            }
        }
    }
    // or static <T extends Comparable<? super T>> void, for static methods
}
Run Code Online (Sandbox Code Playgroud)