Java 排序可比较接口的数组
我已经为一个可比较的数组编写了排序方法,包括插入、合并和选择,我通过改变我以前对int数组进行排序的代码来实现这一点,我只是将int改为compariable。但是,当我对int数组执行此操作时,我非常清楚如何实际使用该方法,例如,这是我对int的选择排序: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;
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;iInteger
),实现了可比性
,因此写入以下内容是合法的:
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种排序方法将在下一次测试中帮助我们,因为我们可以在编写测试时使用我们的代码