看API的时候,突然看到HashMap里面有一句:
通常,默认加载因子 (.75) 在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本(在大多数 HashMap 类的操作中,包括 get 和 put 操作,都反映了这一点)。
==========================================================================================================
想好久也不明白:加载因子过高为何会导致查询成本的增加???
望解答!
通常,默认加载因子 (.75) 在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本(在大多数 HashMap 类的操作中,包括 get 和 put 操作,都反映了这一点)。
==========================================================================================================
想好久也不明白:加载因子过高为何会导致查询成本的增加???
望解答!
========================
是指什么冲突?get和put操作
JAVA的HashMap当put(..)时若产生冲突(即:两个不同的对象,但其hadhCode相同,表明想占用表中同一个位置空间),则目前的实现中是:占用Hash表中同一个位置空间的冲突的元素,用一个链表来链起来.这样:当get(...)时,若有冲突,就要访问链表了(这样,一旦有冲突,put(..)与get(...)都要和链表打交道,成本当然就高了)因此:要尽最大努力,减少冲突的机会
http://yeshucheng.blogjava.net