具有可比较接口的Java通用语法
我正在尝试实现一个简单的插入排序算法,并使其适用于所有可比较接口的实例具有可比较接口的Java通用语法,java,generics,comparable,Java,Generics,Comparable,我正在尝试实现一个简单的插入排序算法,并使其适用于所有可比较接口的实例 public static <E extends Comparable<E>> void InsertionSort( E [] array) { for(int i = 1; i < array.length; i++) { E current = array[i]; int k; for(k = i-1; k >= 0
public static <E extends Comparable<E>> void InsertionSort( E [] array)
{
for(int i = 1; i < array.length; i++)
{
E current = array[i];
int k;
for(k = i-1; k >= 0 && current.compareTo(array[k]) < 0 ; k--)
{
array[k+1] = array[k];
}
array[k+1]=current;
}
for(int l = 0; l < array.length; l++)
{
System.out.print(array[l]+" ");
}
System.out.println();
}
公共静态void InsertionSort(E[]数组)
{
for(int i=1;i=0&¤t.compareTo(数组[k])<0;k--)
{
数组[k+1]=数组[k];
}
阵列[k+1]=当前;
}
for(int l=0;l
我的问题是我不知道它们之间的区别
<E extends Comparable<E>>
及
它们都可以工作,但我不知道第一个的原因。
E extends Comparable
意味着E
的实例可以与E
类型的其他对象进行比较
E扩展了Comparable
意味着E
的一个实例可以与…某物进行比较。这是一种原始类型,很糟糕。不要这样做。最好的选择是
<E extends Comparable>