public class Quicksort{
private int[] numbers;
private int number;
public void sort(int[] values) {// check for empty or null array
if (values ==null || values.length==0){
return;
}
this.numbers = values;
number = values.length;
quicksort(0, number - 1);
}
我想在 Java 中使用这样的快速排序算法,但具有不同的输入,而不仅仅是第 2 行中描述的整数数组 private int[] numbers
.
所以这里的一般问题是,如何向算法"发送"不同的输入?一个显而易见的答案是创建多个多态方法,每个方法用于不同的输入数据,如下所示:
public void(int [] inArray{
do something
}
public void (char[] inArray){
do something else.....
} etc etc
或者使用多态性以不同的输入多次声明public void sort(int[] values)
,例如public void sort(char[] values)
、public void sort(double[] values)
但以上所有,都不是好的编程和太多的代码(声明多个变量等:-(所以我需要一些东西(可能是模板?)来"指示"类"接受"许多不同类型的输入,并显然输出相同类型的数据......
你想使用Comparable
接口
有关更多信息,请参阅此处:
http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html