【发布时间】:2018-07-06 16:43:04
【问题描述】:
我尝试在 O(n) 时间复杂度中使用泛型方法反转数组。但它显示 E 和整数类型不兼容的错误?有人可以纠正吗? 以下是我的代码:
public class HelloWorld{
static Integer intarray[]={0,1,2,3,5,6};
public static <E> void inverse(E inputArray[])
{
int i,low=0,hi=intarray.length-1;
while(low<hi)
{
E temp=intarray[low];
intarray[low]=intarray[hi];
intarray[hi]=temp ;
low++;hi--;
}
}
public static < E > void printArray( E[] inputArray )
{
for(E element : inputArray) {
System.out.printf("%s ", element);
}
System.out.println();
}
public static void main(String []args)
{
//System.out.println("Hello World");
printArray(intarray);
inverse(intarray);
}
}
【问题讨论】:
-
intarray是int[],而不是E[]。您可能打算改用inputArray。投票结束与您的问题无关的问题归结为拼写错误,因此不太可能对未来的访问者有用。 -
@JoeC 你是对的,但是 intarray 是一个
Integer[],而不是int[],所以它可能会以一种令人困惑的方式出现。inverse方法不应引用变量 intarray 而是inputArray。 -
不是“逆”、“逆”、“横”,也不是“转置”。它被称为“反向”。
标签: java arrays generics inverse