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

具有可比较接口的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>