用java语言写个方法去除数组中的重复数字,如{1,2,2,2,10,27,10}->{1,2,10,27}

我是这样写的:
int[] num = {1,2,2,2,10,27,10};
Set s = new HashSet();
for(int i = 0 ; i<num.length ; i++){
s.add(num[i]);
}
int[] in =(int[])s.toArray();//这一步出错,我不知道为什么,怎么解决?
System.out.println(in.toString());

Object[] in =s.toArray();
这里s.toArray();返回的是Object 数组,
object 是所有类型的父类,只可以int强转object,
但是不能将object强转int
所以报错,下面是修改后的程序:
int[] num = {1,2,2,2,10,27,10};
Set s = new HashSet();
for(int i = 0 ; i<num.length ; i++){
s.add(num[i]);
}
Object[] in =s.toArray();
for (int i = 0; i < in.length; i++) {
System.out.print(in[i].toString()+",");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-19
遍历Set的方法你好像不懂吧?
出错的地方后面改成这样....
Iterator it = s.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
第2个回答  2012-09-19
s.toArray()返回的是Object[]数组,所以如果改成Integer[] in =(Integer[]) s.toArray();int 标示的基本数据类型,所以应该用他的包装类Integer.可以多参考api文档来学习
第3个回答  2012-09-19
从一个对象数组怎么能强制转为int数组呢。直接用Object[]接收就好了。本身int就是Object。不会打印成别的。
public class JavaRandom
{
public static void main(String args[]) {

int[] num = {1,2,2,2,10,27,10};
Set s = new HashSet();
for(int i = 0 ; i<num.length ; i++){
s.add(num[i]);
}
Object[] object=s.toArray();//这一步出错,我不知道为什么,怎么解决?
for (int i = 0; i < object.length; i++) {
System.out.println(object[i]);
}
}
}
第4个回答  2012-09-19
用你的程序,
int[] num = {1,2,2,2,10,27,10};
Set s = new HashSet();
for(int i = 0 ; i<num.length ; i++){
s.add(num[i]);
}
for(Object i:s.toArray())
{
System.out.println(i);
}
第5个回答  2012-09-19
HashSet 强转 int数组??这么强悍的写法。。怎么不会报错。。int不是对象类型,,Integer 才是

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网