由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 问一个Java的问题,关于create generic array
相关主题
问个 Generic 的问题How to check if an element is in an array?
如何造Array of Generic TypeArray 能不能用ArrayList作为它的元素?
如何定义这样的数组?ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有
extending generic class , but not mentioning its parameterized type?今天碰到一个面试题
这几个函数可以用Generic之类的东西合并么?我想把一个Arraylist转成String[]
请问有没有generic的array请帮忙看看这个编译错误
Java里有没有象cell array一样的东西java regex pattern question
ArrayList and Link list超级初级问题ArrayList
相关话题的讨论汇总
话题: arr话题: anytype话题: result话题: j2话题: j1
进入Java版参与讨论
1 (共1页)
z**********r
发帖数: 86
1
我现在在学习Java,以前会C/C++,但是主要是用C和Matlab。
我用的是Weiss "Data Structures and Problem Solving Using Java 3rd Edition",
现在看到了第四章,关于继承。
里面有一道习题(4.23):
Write generic method max2, which accepts an array and return an array of
length two representing the two largest item in the array. The input array
should be unchanged. Then use this method on String type.
最下面是我的代码。现在我的问题是,我知道创建一个generic array是不被允许的。
StackOverflow上面有人给了一种方法:
AnyType []result=(AnyType []) new Object[2];
这种方法编译没有错的,但是运行的时候会出现[Ljava.lang.Object; cannot be cast
to [Ljava.lang.Comparable;
不知道有什么方法可以解决这个问题吗?
import java.util.ArrayList;
public class q23
{
public static void main(String []args)
{
String []arr={"write", "generic", "methods", "min", "and", "max", "
each", "of", "which", "accept", "two", "parameter"};
String []result=max2(result);
System.out.println("max2(arr)="+result[0]+" and "+result[1]);
}
public static AnyType[] void max2(AnyType[]
arr)
{
int i=0, j1=0, j2=1;
if (arr[0].compareTo(arr[1])>0)
{
j1=0;
j2=1;
}
else
{
j1=1;
j2=0;
}
for (i=2; i {
if (arr[i].compareTo(arr[j2])>0)
{
if (arr[i].compareTo(arr[j1])>0)
{
j2=j1;
j1=i;
}
else
{
j2=i;
}
}
}
/** compiled ok but run time error: [Ljava.lang.Object; cannot be
cast to [Ljava.lang.Comparable;
ArrayList result=new ArrayList(2);
result.add(arr[j1]);
result.add(arr[j2]);
return result.toArray(null);
AnyType []result=(AnyType []) new Object[2];
result[0]=arr[j1];
result[1]=arr[j2];
return result;
*/
}
}
F****n
发帖数: 3271
2
Use
java.lang.reflect.Array.newInstance(AnyType.class, 2)

【在 z**********r 的大作中提到】
: 我现在在学习Java,以前会C/C++,但是主要是用C和Matlab。
: 我用的是Weiss "Data Structures and Problem Solving Using Java 3rd Edition",
: 现在看到了第四章,关于继承。
: 里面有一道习题(4.23):
: Write generic method max2, which accepts an array and return an array of
: length two representing the two largest item in the array. The input array
: should be unchanged. Then use this method on String type.
: 最下面是我的代码。现在我的问题是,我知道创建一个generic array是不被允许的。
: StackOverflow上面有人给了一种方法:
: AnyType []result=(AnyType []) new Object[2];

1 (共1页)
进入Java版参与讨论
相关主题
超级初级问题ArrayList这几个函数可以用Generic之类的东西合并么?
Java练习题 12请问有没有generic的array
这段程序的输出是什么? 为什么Java里有没有象cell array一样的东西
问个ArrayList的问题ArrayList and Link list
问个 Generic 的问题How to check if an element is in an array?
如何造Array of Generic TypeArray 能不能用ArrayList作为它的元素?
如何定义这样的数组?ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有
extending generic class , but not mentioning its parameterized type?今天碰到一个面试题
相关话题的讨论汇总
话题: arr话题: anytype话题: result话题: j2话题: j1