黑马程序员技术交流社区

标题: 数组转集合的问题 [打印本页]

作者: 魏亮    时间: 2012-9-25 21:03
标题: 数组转集合的问题

               

                int [] ints={1,5,4,3,2};//这样的话编译失败。。。。而把int改成 Integer 之后就编译通过了,为什么呢?毕老师不是说过
                List<Integer> al=Arrays.asList(ints);//如果是基本数据类型的话,就会把数组当做集合中一个元素存入集合吗?怎么会编译                                       
                                                                      //失败呢??
               

QQ截图20120925210258.png (2.59 KB, 下载次数: 171)

QQ截图20120925210258.png

作者: 郭阳    时间: 2012-9-25 21:10
如果是基本数据类型的话,就会把数组当做集合中一个元素存入集合吗?怎么会编译失败呢??

因为你的List后面加了泛型,只能存入Integer类型的元素
你自己也明白会把数组当做集合中一个元素存入集合,数组时int[]类型。和integer类型不兼容
所以报错
作者: 汪小照    时间: 2012-9-25 21:11
本帖最后由 汪小照 于 2012-9-25 21:18 编辑

集合中装的是Integer类型,而Arrays.asList(ints);存放的是一个数组对象,所以会出现类型不兼容的问题。应该把<>中的Integer改为Int [] 类型。
源代码如下:
import java.util.*;
class Test
{
public static void main(String[] args)
{
  int [] ints = {1,2,3,4};
  List<int []> list = Arrays.asList(ints);
  System.out.println(list);
}
}

1jpg.jpg (4.27 KB, 下载次数: 163)

运行结果

运行结果

作者: 杨卫腾    时间: 2012-9-25 21:25
{:soso_e179:}楼上的正解!!
作者: 李建强    时间: 2012-9-25 21:29
本帖最后由 李建强 于 2012-9-25 21:32 编辑

编译器是很有用的:
看提示就知道了:
需要List<Integer>
找到List<int[]>
左边声明的泛型是Integer,右面找到List<int[]>。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2