黑马程序员技术交流社区
标题:
哈希值的问题
[打印本页]
作者:
张明星
时间:
2012-3-22 16:21
标题:
哈希值的问题
int [] num={2,3,4};
List<int[]> list=Arrays.asList(arr);
System.out.println(list);
复制代码
代码将数组转化为了集合,最后输出集合元素的哈希值。请问:哈希值到底指的是什么,跟物理内存有什么关系,是随机分配的吗?
作者:
张明星
时间:
2012-3-22 16:25
第一行是 int[] arr={2,3,4}
作者:
陈汉帆
时间:
2012-3-22 16:51
本帖最后由 陈汉帆 于 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);
哈希值就根据一个特定的哈希公式算出来的值,根据哈希值把数据存放在哈希表的不同区域
说下哈希表的作用:
假如你要从一万个数据查找一个数据,但很不巧你要找的数据在一万个数据的最后一个,那么你就要花费很多时间在遍历上,哈希表就是把这一万个数据分别存储在若干区域,要查找数据就先计算哈希值,然后找对应的区域,那么即使你要找的数据在那个区域的末尾,但也大大的缩小了查找的范围了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2