前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阿里面试官:HashMap中的8和6的关系(1)

阿里面试官:HashMap中的8和6的关系(1)

作者头像
黑洞代码
发布2021-01-14 15:20:04
9020
发布2021-01-14 15:20:04
举报

候选人无双:JAVA7中在HashMap出现哈希碰撞的时候,会把碰撞的元素用链表相连。JAVA8中在链表长度到达8时会把链表转成红黑树提升查询效率。

面试官:这话我都听了几百遍了。问你一个问题,为啥JAVA8要选择用8这个数字作为临界值,将链表转红黑树。

当时无双同学的内心是这样的。

要说清楚这个问题,要从到高中和大学中学习的统计学相关知识开始说起。

大学时,我一直觉得统计学很有意思,差点就考了满分。 工作以后才发现,JAVA中的很多设计理念都跟统计学有关系滴。比起高等数学,统计概念其实容易理解多了。

一、泊松分布

日常生活中,大量事件是有固定频率的。

  • 某医院平均每小时出生3个婴儿
  • 某公司平均每10分钟接到1个电话
  • 某超市平均每天销售4包xx牌奶粉
  • 某网站平均每分钟有2次访问

其实我们生活中也会聊到各种分布。比如下面不同季节男人的目光分布.。

各位老铁,来一波美女,看看你的目光停在哪个分布的地方。

美女也看了,现在该专注学习了吧。现在,我们已经知道了两件事情:

1)数据类型(也叫随机变量)有2种:离散数据类型(例如抛硬币的结果),连续数据类型(例如时间) 2)分布:数据在统计图中的形状

现在我们来看看什么是概率。概率分布就是将上面两个东东(数据类型+分布)组合起来的一种表现手段:

概率分布就是在统计图中表示概率,横轴是数据的值,纵轴是横轴上对应数据值的概率。

很显然的,根据数据类型的不同,概率分布分为两种:离散概率分布,连续概率分布。

那么,问题就来了。为什么你要关心数据类型呢?

因为数据类型会影响求概率的方法。

对于离散概率分布,我们关心的是取得一个特定数值的概率。例如抛硬币正面向上的概率为:p(x=正面)=1/2

而对于连续概率分布来说,我们无法给出每一个数值的概率,因为我们不可能列举每一个精确数值。

例如,你在咖啡馆约妹子出来,你提前到了。为了给妹子留下好印象,你估计妹子会在5分钟之内出现,有可能是在4分钟10秒以后出现,或者在4分钟10.5秒以后出现,你不可能数清楚所有的可能时间,你更关心的是在妹子出现前的1-5分钟内(范围),你把发型重新整理下(虽然你因为加班头发 已经秃顶了,但是发型不能乱),给妹子留个好印象。所以,对于像时间这样的连续型数据,你更关心的是一个特定范围的概率是多少。

什么是泊松分布?

试想一下,你现在就站在一个人流密集的马路旁,打算收集闯红灯的人群情况(?)。首先,利用秒表和计数器,一分钟过去了,有5个人闯红灯;第二分钟有4个人;而下一分钟有4个人。持续记录下去,你就可以得到一个模型,这便是“泊松分布”的原型。

除此以外,现实生活中还有很多情况是服从泊松分布的:

10分钟内从ATM中取钱的人数一天中发生车祸的次数每100万人中患癌症的人数单位面积土地内昆虫的数目……

Poisson模型(泊松回归模型)是用于描述单位时间、单位面积或者单位容积内某事件发现的频数分布情况,通常用于描述稀有事件(即小概率)事件发生数的分布。

上述例子中都明显的一个特点:低概率性,以及单位时间(或面积、体积)内的数量。通常情况下,满足以下三个条件时,可认为数据满足Poisson分布:

(1) 平稳性:发生频数的大小,只与单位大小有关系(比如1万为单位,或者100万为单位时患癌症人数不同);

(2) 独立性:发生频数的大小,各个数之间没有影响关系,即频数数值彼此独立没有关联关系;比如前1小时闯红灯的人多了,第2小时闯红灯人数并不会受影响;

(3) 普通性:发生频数足够小,即低概率性。

如果数据符合这类特征时,而又想研究X对于Y的影响(Y呈现出Poisson分布);此时则需要使用Poisson回归,而不是使用常规的线性回归等。

判断是否符合Poisson分布的方法

检验数据是否符合Poisson分布,共有两种方法:一种是通过特征判断;另外一种是通过Poisson检验。

特征判断即是要数据符合上面提到的三个条件;而如果用Poisson检验可在SPSSAU【医学研究→Poisson检验】里进行检验。

在现实研究中,可能更多会通过特征进行判断是否基本符合Poisson分布。

三、总结

一句话总结:泊松分布是单位时间内独立事件发生次数的概率分布,指数分布是独立事件的时间间隔的概率分布。

请注意是"独立事件",泊松分布和指数分布的前提是,事件之间不能有关联,否则就不能运用上面的公式。

这些统计学模型又跟JAVA8中的HashMap有什么样的关联呢?不要急。下一篇文章将揭示JAVA8HashMap中“隐秘的角落”~~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 落叶飞翔的蜗牛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、泊松分布
  • 三、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档