手机浏览器扫描二维码访问
【Java集合框架的3个核心问题】
1、比较arrayList、LinkedList和Vector的异同?
2、谈谈hashmap和Treemap的实现原理?
3、如何选择合适的集合类?
……
第四篇:集合框架(3个)
1、比较arrayList、LinkedList和Vector的异同?
相同点:
三者都实现了List接口,存储数据的方式都是基于动态数组的形式。
当元素数量过当前数组长度时,会在内存中分配一块更大的内存…
将原有数组中的数据复制过去,释放原数组,然后将新元素放到新数组中。
不同点:
1)arrayList和VenetkedList是双向链表。
2)arrayList和VenetkedList不支持。
3)arrayList在内存不足时,扩容为原来的1.5倍,Vector扩容为原来的2倍。
而LinkedList在内存上更加优化,因为LinkedList的节点不需要连续存储。
4)arrayList和LinkedList不是线程安全的,而Vector是线程安全的。
…
2、谈谈hashmap和Treemap的实现原理?
hashmap和Treemap,是Java中两种常用的map实现。
它们各自有着,独特的实现原理和使用场景。
一、hashmap:
hashmap是基于哈希表实现的map接口。
它允许使用nu11键和nu11值。
hashmap不保证映射的顺序,特别是它不保证该顺序恒久不变。
hashmap的实例,有两个参数影响其性能,即初始容量和加载因子。
初始容量,是哈希表在创建时的容量;
加载因子,是哈希表在其容量自动增加之前,可以达到多满的一种尺度。
当哈希表中的条目数,过了加载因子与当前容量的乘积时…
哈希表就会进行rehash操作;
也就是创建一个新的数组,然后将原数组中的数据,重新映射到新数组中。
hashmap的核心数据结构,是一个node数组。
每个node,都保存了键值对信息,以及指向下一个node的引用。
在hashmap中,通过key的hashcode经过一定的计算后得到数组下标…
然后,在对应的数组位置上,进行存储。
如果,计算出的数组下标位置,已经存在元素,那么就在这个位置形成链表。
当链表长度太长(默认是8)时,链表就转换为红黑树,这样可以大大提高查询的效率。
二、Treemap:
Treemap是基于红黑树实现的map接口。
宇智波御穿越了,来到了危机重重的火影世界。看着镜子里猩红的写轮眼,宇智波御满意地点了点头嗯,目前一切都还很顺利顺利个锤子啊!掐指一算,宇智波灭族夜好像就这几天的事情了吧,看着墙上越撕越薄的日历,宇智波御感受到了来自这个世界满满的恶意为了在灭族之夜保住自己的性命,甚至虎口夺食,宇智波御决定,从今天起努力训练宝可梦!宇智波梦妖,使用幻术!某训练家裁判,御的梦妖魔不合法,它用幻术!宇智波御哼哼,你是绝对无法逃过这个术的!迪达拉爆炸就是艺术!宇智波我家庞岩怪的艺术更在你之上啊!...
简介关于七零军婚,当生子系统变成人生子系统变成人,这放到哪里都是相当炸裂的存在。作为福孕系统的楚姣阳某天睁眼之后现自己不仅变成了人,还作为一个七零年代的扫把星替嫁给了一个病秧子。面对这种意外,楚姣阳表示这日子谁爱过谁过,反正她不过。可没想到她第一眼看到的就是宽肩窄腰,八块腹肌。楚姣阳这日子倒也不是不能过。☆西河村的乡亲们都有些摸不着头脑。不是说楚姣阳是个扫把星吗?怎么刚过门,这宁冽就能下床了?不仅如此,还一胎三宝,日子过得红红火火?什么扫把星,明明就是福星!楚姣阳表示,这泼天的富贵,终于也轮到她了。...
作品简介拒绝美女上司骚扰的石波澜被捡破烂系统选中了!恭喜宿主捡到矿泉水瓶一个,奖励1oo元,已放到宿主银行账户!恭喜宿主捡到废旧手机一部,奖励价值1oo万...
永历十三年,大明到了覆灭的最后关头。朱由榔睁开双眼,满朝奸佞,十面追兵,谁说我是逃跑皇帝?看我怎么战云南定南洋驱鞑虏拓边疆拳打吴三桂脚踢尚可喜生擒洪承畴福临当球踢让你们看看什么叫21世纪的降维打击!铁血残明之南洋崛起...
这个世界的格局遭遇巨变,全世界都在说华夏语!曾一度辉煌的粤语歌曲竟沦落为无人问津的小语种?所有人都在北上,寻求华夏梦。在这样的大环境下,韩森所率领的惊鸿乐队濒临解散,在香江之星的舞台上,一曲友情岁月,把几个心怀梦想的青年重新召回,自此便拉开了巨星时代的序幕。...
简介关于多子多福,开局暴打亲娘江浩穿越异界,开局变成了殴打母亲的废物儿子,穿越而来的江浩坚持改过自新,于是便绑定了多子多福系统。随后迎娶了天生肥胖的女子李娇,没想到这个李娇竟然拥有特殊体质,只要每天吃东西就可以增长修为。子嗣达到一定数量后,竟然还会奖励各种功法和宝物。江浩看着系统奖励的东西,不由得陷入了深思...