Java 如何使用T[]设置数组?
我在尝试创建数组进行排序时遇到问题。当我试图编译我的主方法时,它告诉了我。我仍在学习java,不确定是否必须以某种方式扩展T才能使其工作。我的问题是,如何为requiret[]设置数组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
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
以及它们后面的参数)之间应留有空格。