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)
打开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)