黑马程序员技术交流社区

标题: int型数组转换成Integer型数组 出现异常 [打印本页]

作者: 孟凡超    时间: 2014-7-22 11:10
标题: int型数组转换成Integer型数组 出现异常
本帖最后由 孟凡超 于 2014-7-22 11:12 编辑
  1. /*先把int型数组转成Integer类型数组*/
  2. int[] arr = {1,3,2,5,3,6};
  3. Integer[] array = new Integer[arr.length];
  4. for(int i=0; i<arr.length; i++)
  5. {
  6.           Integer integer = new Integer(arr[i]);
  7.           array[i] = integer;
  8. }
  9. /*再把Integer类型数组转换成集合*/
  10. ArrayList<Integer> list = (ArrayList<Integer>) Arrays.asList(array); /*此处出现错误*/
  11. System.out.println(list);
复制代码
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
如何解决呢??望指点


作者: fantacyleo    时间: 2014-7-22 11:39
asList方法返回值是List<T>,但没有指明是List的哪个子类,你强转成ArrayList当然不对。这就好比,Dog和Cat都是Animal,但一个函数返回给你一个Animal,你能确定是Cat还是Dog么?在不确定的情况下你就强转为Dog,万一是Cat呢?
作者: 草鱼狂飙    时间: 2014-7-22 11:42
我不知道你对集合的理解,我也不知道的理解的对不对,但是把Integer类型数组转换成集合中,你的代码中array本来就是一个Arraylist可变数组。
ArrayList<Integer> list = (ArrayList<Integer>) Arrays.asList(array);
将可变数组变为 一个可变数组是几个意思?
我猜想你可能想要这个结果
  1.         /*先把int型数组转成Integer类型数组*/
  2.                  int[] arr = {1,3,2,5,3,6};
  3.                  Integer[] array = new Integer[arr.length];
  4.                  for(int i=0; i<arr.length; i++)
  5.                  {
  6.                           Integer integer = new Integer(arr[i]);
  7.                           array[i] = integer;
  8.                           System.out.print(array[i]+"   ");
  9.                  }
  10.                  
  11.                  /*再把Integer类型数组转换成集合*/
  12.                  List<Integer> list =  Arrays.asList(array); /*此处出现错误*/
  13.                  System.out.println(list);
复制代码

作者: dreamseekerkun    时间: 2014-7-22 11:48
额还没看到这里,表示看不懂的路过。
作者: 肖岩    时间: 2014-7-22 12:43
我觉得2楼才是真相啊
作者: 孟凡超    时间: 2014-7-22 16:11
草鱼狂飙 发表于 2014-7-22 11:42
我不知道你对集合的理解,我也不知道的理解的对不对,但是把Integer类型数组转换成集合中,你的代码中array ...

谢谢。。。。。。
作者: 孟凡超    时间: 2014-7-22 16:16
fantacyleo 发表于 2014-7-22 11:39
asList方法返回值是List,但没有指明是List的哪个子类,你强转成ArrayList当然不对。这就好比,Dog和Cat都 ...

好的,让我整理一下思路
作者: 青偆丶易逝〃    时间: 2014-7-22 16:28
我也感觉二楼是对的, 你用的eclipse 编程吗? 还是原生态?




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