1、Hash 类集合,在存储时 会存以hash 值为数组下标的数组
| hash | |
| 11 | AA,BB |
| 22 | CC |
这样contains 时 只用判断 数组对应位置是否有值,没有直接返回,有的话再用equals 判断内容是否相等。
所以 contains 的效率是o(1) 的,需要注意的是HashMap 对value 的查找是o(n) 的。
HashSet底层其实就是研究HashMap底层的结构,1.8以前是链表,1.8改为了 当阈值大于一定数量时,底层结构变为红黑树结构
Hashmap 详细原理http://www.cnblogs.com/java-jun-world2099/p/9258605.html
2.tree 类
使用二叉树查找
本文深入探讨了Hash类集合的存储原理,解释了其如何通过哈希值提高contains操作的效率至O(1),并指出HashMap对value的查找效率为O(n)。同时,文章对比了1.8前后HashSet底层结构的变化,从链表到红黑树的优化。此外,还简述了Tree类的二叉树查找机制。
3696

被折叠的 条评论
为什么被折叠?



