对于参数类型,运算符< =未定义

时间:2015-04-01 21:36:35

标签: java sorting if-statement merge

我试图让这个合并排序方法完成但由于某种原因我显示错误&#34;运算符&lt; =未定义参数类型T,T&#34; < / p>

表示if语句

if(a[beginHalf1] <= a[beginHalf2])
      {

        tempArray[index] = a[beginHalf1];
        beginHalf1++;
      }

这是完整的代码

public static <T extends Comparable<? super T>>
    void merge(T[] a, T[] tempArray, int first, int mid, int last){


           int beginHalf1 = first;
           int endHalf1 = mid;
           int beginHalf2 = mid +1;
           int endHalf2 = last;
           int index = 0;

    while((beginHalf1 <= endHalf1) && (beginHalf2 <= endHalf2) )
          {

           if(a[beginHalf1] <= a[beginHalf2]){

           tempArray[index] = a[beginHalf1];
           beginHalf1++;
        }

        else
        {
            tempArray[index]=a[beginHalf2];
            beginHalf2++;
        }
     index++;
    }




    } // end merge

1 个答案:

答案 0 :(得分:1)

运算符&gt; =&lt;适用于原始类型。您应该使用compareTo for T(如果它是可比的)。

if(a[beginHalf1].compareTo(a[beginHalf2]) <= 0)