Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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_Arrays_Sorting_Interface_Comparable - Fatal编程技术网

Java 排序可比较接口的数组

Java 排序可比较接口的数组,java,arrays,sorting,interface,comparable,Java,Arrays,Sorting,Interface,Comparable,我已经为一个可比较的数组编写了排序方法,包括插入、合并和选择,我通过改变我以前对int数组进行排序的代码来实现这一点,我只是将int改为compariable。但是,当我对int数组执行此操作时,我非常清楚如何实际使用该方法,例如,这是我对int的选择排序: public void selectionSort(int[] list){ for (int i=0;i<list.length;i++){ for (int si=i;si<list.length;

我已经为一个可比较的数组编写了排序方法,包括插入、合并和选择,我通过改变我以前对int数组进行排序的代码来实现这一点,我只是将int改为compariable。但是,当我对int数组执行此操作时,我非常清楚如何实际使用该方法,例如,这是我对int的选择排序:

 public void selectionSort(int[] list){
    for (int i=0;i<list.length;i++){
        for (int si=i;si<list.length;si++){
            if (list[si]<list[i]){
                int temp=list[i];
                list[i]=list[si];
                list[si]=temp;
            }
        }
    }        
}
public void selectionSort(int[]列表){

例如,对于(int i=0;i
Integer
),实现了
可比性
,因此写入以下内容是合法的:

Comparable[] list = new Comparable[3];
list[0] = Integer.valueOf(3);
list[1] = Integer.valueOf(2);
list[2] = Integer.valueOf(3);
 Comparable<Integer>[] list = new Comparable<Integer>[3];
通过查看

问题是(您应该会看到一些编译器警告),您不能同时为
Comparable
指定泛型参数,也不能生成参数化对象的数组,也就是说,写入以下内容是不合法的:

Comparable[] list = new Comparable[3];
list[0] = Integer.valueOf(3);
list[1] = Integer.valueOf(2);
list[2] = Integer.valueOf(3);
 Comparable<Integer>[] list = new Comparable<Integer>[3];

值得注意的是,这将适用于任何实现
可比
的非基本对象类型
T
,例如
Integer[]
Double[]
,但不适用于
int[]
Integer
,例如,实现
可比
,因此可以合法编写:

Comparable[] list = new Comparable[3];
list[0] = Integer.valueOf(3);
list[1] = Integer.valueOf(2);
list[2] = Integer.valueOf(3);
 Comparable<Integer>[] list = new Comparable<Integer>[3];
通过查看

问题是(您应该会看到一些编译器警告),您不能同时为
Comparable
指定泛型参数,也不能生成参数化对象的数组,也就是说,写入以下内容是不合法的:

Comparable[] list = new Comparable[3];
list[0] = Integer.valueOf(3);
list[1] = Integer.valueOf(2);
list[2] = Integer.valueOf(3);
 Comparable<Integer>[] list = new Comparable<Integer>[3];

值得注意的是,这将适用于实现
可比较的
的任何非基本对象类型
T
,例如
整数[]
双[]
,但不适用于
int[]

你到底为什么想要一个可比较的数组?你想解决什么问题?我们的老师告诉我们,对数组、arraylist和可比较的接口执行所有3种排序方法将在下一次测试中帮助我们,因为我们可以在编写测试时使用我们的代码。你到底为什么想要一个数组可比数组?你想解决什么问题?我们的老师告诉我们,对数组、arraylist和可比接口执行所有3种排序方法将在下一次测试中帮助我们,因为我们可以在编写测试时使用我们的代码