黑马程序员技术交流社区
标题:
Arrays.asList()方法处理int[]和String[]时有什么差异?
[打印本页]
作者:
于汝国
时间:
2011-12-23 11:33
标题:
Arrays.asList()方法处理int[]和String[]时有什么差异?
本帖最后由 于汝国 于 2011-12-23 15:54 编辑
今天学习了数组的反射,虽然张孝祥老师讲解了Arrays.asList()方法处理int[]和String[]时的差异,但我还不是非常的清楚,求详解......
作者:
杨强
时间:
2011-12-23 12:20
Array.asList()方法处理int[]和String[]时的差异
int arr[] = new int[]{3,4,5,6,7};
System.out.println(Arrays.asList(arr)); // 输出:[[I@c17164],而不是:3,4,5,6 因为arr被当做object 而不是Object[]
System.out.println(Arrays.asList(new String[]{"abc","def"})); // 输出:[abc, def]
作者:
黄喆
时间:
2011-12-23 14:02
按照张老师的讲解,个人理解:
Arrays.asList()方法在JDK 1.4版本中参数是 Arrays.asList(Object[] a) 接收一个Object[] 数组,
Arrays.asList()方法在JDK 1.5版本中参数是 Arrays.asList(T...a) 接收一个是一个对象,
int 不属于Object 类 所以int[] 也不是 Object[] ,int[] 则属于一个Object对象,按照JDK 1.5版本以上的方法执行
将int[] 当作一个对象存入List中。
String[] 数组 属于 Object[] 数组 可以按照JDK 1.4版本中参数是 Arrays.asList(Object[] a) 的方法将每个元素存入到List中
作者:
于汝国
时间:
2011-12-23 14:25
谢谢各位,明白了!嘻嘻
作者:
为梦而战
时间:
2011-12-23 15:41
int[] 的元素是基本数据类型,而集合中存放的是对象,如果你要把int[]转成集合,那集合会把整个int[]数组做为一个对象,将这个数组的地址放入集合,而不是int[]数组中的元素地址。这时你可以把int[]数组封装成对象Integer ,这样数组中的元素就被装箱成对象了,Integer数组中的每个元素就可以成为集合中的元素。
而String[]中的字符串本身就是对象,所以转成集合时,直接变成集合中的元素。
作者:
于汝国
时间:
2011-12-23 15:55
恩,原来如此,谢谢各位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2