Java 如何使用T[]设置数组?

Java 如何使用T[]设置数组?,java,arrays,sorting,Java,Arrays,Sorting,我在尝试创建数组进行排序时遇到问题。当我试图编译我的主方法时,它告诉了我。我仍在学习java,不确定是否必须以某种方式扩展T才能使其工作。我的问题是,如何为requiret[]设置数组 int[] numArray = {99, 2, 1, 88, 66, 32}; Sorter.insertSort(numArray, numArray.length); SorterMain.java:24: error: method insertSort in class Sorter cann

我在尝试创建数组进行排序时遇到问题。当我试图编译我的主方法时,它告诉了我。我仍在学习java,不确定是否必须以某种方式扩展T才能使其工作。我的问题是,如何为requiret[]设置数组

int[] numArray = {99, 2, 1, 88, 66, 32};
    Sorter.insertSort(numArray, numArray.length);

SorterMain.java:24: error: method insertSort in class Sorter cannot be applied to given types;
    Sorter.insertSort(numArray);
          ^
  required: T[],int
  found: int[]
当我试着用T做它时,它说它找不到它

我的分类如下

public static <T extends Comparable<? super T>> void insertSort(T[] theArray, int n)
   {
      int count1 = 0;
      for(int unsorted = 1; unsorted < n; ++unsorted)
      {
         T nextItem = theArray[unsorted];
         int loc = unsorted;
         while((loc > 0) && (theArray[loc-1].compareTo(nextItem) > 0))
         {
            theArray[loc] = theArray[loc-1];
            loc--;

         } //end while

         theArray[loc] = nextItem;
         count1++;

      }//end for

      for(int i = 0; i < n; i++)
      {

      System.out.print(theArray[i] + " ");

      }//end for

      System.out.println(" ");
      System.out.println("Number of times moved: " + count1);


   }//end insertSort

publicstatic您的
insertSort
出于某种原因需要传递数组的长度,因此:

Sorter.insertSort(numArray, numArray.length);
不过,函数本身确实应该是这样做的


另一个问题是
int
s是原语,泛型不能与Java中的原语一起工作;您需要使用一个
整数[]

不幸的是,这仍然会给我上面提到的错误:T[],int found:int[],int@Robert:抱歉,请参阅更新:声明它为
Integer[]numArray=…
。非常不相关的旁注:如果您想遵循Java的官方MoS,括号应与它们关联的位(函数定义、
while
循环等)在同一行,并且在关键字(如
for
while
以及它们后面的参数)之间应留有空格。