Wei*_*vid 0 java generics comparable
我正在尝试实现一个简单的插入排序算法,并使其通用于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 && 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();
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不知道它们之间的区别
<E extends Comparable<E>>
Run Code Online (Sandbox Code Playgroud)
和
<E extends Comparable>
Run Code Online (Sandbox Code Playgroud)
他们都工作,但我不知道第一个的原因.
E extends Comparable<E>表示可以将实例E与其他类型的对象进行比较E.
E extends Comparable意味着E可以将一个实例与......进行比较.这是一种原始类型,这很糟糕.不要那样做.