Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 同一类算法中的不同基元数据类型条目_Java_Polymorphism - Fatal编程技术网

Java 同一类算法中的不同基元数据类型条目

Java 同一类算法中的不同基元数据类型条目,java,polymorphism,Java,Polymorphism,我想在Java中使用这样的快速排序算法,但输入不同,而不仅仅是第2行private int[]numbers中描述的整数数组 所以这里的一般问题是,如何“发送”给算法不同的输入? 一个显而易见的答案是为不同的输入数据创建多个多态方法,如下所示: public class Quicksort{ private int[] numbers; private int number; public void sort(int[] values) {// check for empty or null a

我想在Java中使用这样的快速排序算法,但输入不同,而不仅仅是第2行
private int[]numbers
中描述的整数数组

所以这里的一般问题是,如何“发送”给算法不同的输入? 一个显而易见的答案是为不同的输入数据创建多个多态方法,如下所示:

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);
}
或者使用多态性以不同的输入多次声明
公共无效排序(int[]值)
,例如
公共无效排序(char[]值)
公共无效排序(double[]值)
但以上所有内容都不是很好的编程和太多的代码(多变量声明等:-(
因此,我需要一些东西(可能是模板?)来“指示”类“接受”许多不同类型的输入,并显然输出相同类型的数据…

您想使用
Comparable
界面吗

有关更多信息,请参见此处:


您可能想查看可比较的接口;不幸的是,这就是生活:如果不是一系列原语,您可以使用泛型,但是按照泛型在Java中“实现”的方式,重复代码是您唯一的选择。我最终重复了代码。不优雅,但“这就是生活”…-)
public void(int [] inArray{
   do something
}
public void (char[] inArray){
   do something else.....
} etc etc