A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

将一个数组变成集合时,
String[] arr = {"abc","haha","heima"}
List<String>list = Arrays.asList(arr);
用System.out.println(list);能正确打印结果。

但是这个语句:int[] nums = {2,4,5};
List<int[]> list = Arrays.asList(nums);
打印list结果却是一个hash值,为什么呢?要怎么改写呢?

评分

参与人数 1技术分 +2 收起 理由
小龙 + 2 看看马友们的回答哦!

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-7-23 00:56:46
沙发
因为它把int[]整体做为一个obj传给aslist了,这个张老师的视频里有相关的介绍,好像后面JAVA高新技术那个包里的某节课提个这个问题。好像叫数组与Object的关系那个视频里
当传入String[]时,是把String[]里的内容一个个放进list
当传入int[]类型时,是把int[]当作一个obj参数进行处理了。所以打印出来list就只有一个元素,并且是一个数组
要改的话,把int改成Integer就行了。

评分

参与人数 1技术分 +2 收起 理由
小龙 + 2 晚上加分值,非常给力哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-23 01:25:08
藤椅

回复 藤椅 的帖子

谢谢各位解答,我刚重新复习视频了,Arrays的asList()方法,接受一个Object[]数组,所以String可以,而“int等基本数据类型不是Object”就不可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马