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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张明星 中级黑马   /  2012-3-22 16:21  /  1537 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int [] num={2,3,4};
  2.                 List<int[]> list=Arrays.asList(arr);
  3.                 System.out.println(list);
复制代码
代码将数组转化为了集合,最后输出集合元素的哈希值。请问:哈希值到底指的是什么,跟物理内存有什么关系,是随机分配的吗?      

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

2 个回复

倒序浏览
第一行是 int[] arr={2,3,4}
回复 使用道具 举报
本帖最后由 陈汉帆 于 2012-3-22 17:02 编辑

泛型只能接收引用类型,int[] arr={2,3,4}是基本数据类型,arr本身就是一个对象,在这里编译器不会自作多情的把基本数据类型自动装箱成Integer,因为有可能你就只想传递一个数组类对象,而不是数组,代码应改成
Integer [] arr={2,3,4};

                List<Integer> list=Arrays.asList(arr);

                System.out.println(list);

哈希值就根据一个特定的哈希公式算出来的值,根据哈希值把数据存放在哈希表的不同区域
说下哈希表的作用:
假如你要从一万个数据查找一个数据,但很不巧你要找的数据在一万个数据的最后一个,那么你就要花费很多时间在遍历上,哈希表就是把这一万个数据分别存储在若干区域,要查找数据就先计算哈希值,然后找对应的区域,那么即使你要找的数据在那个区域的末尾,但也大大的缩小了查找的范围了

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马