Java HashMap分析及其它
来源:互联网 发布:html5编程软件 编辑:程序博客网 时间:2024/06/05 02:36
首先来了解下Hashcdoe
1.对于字符串来说( ==表示对象是否相等,.equal表示内容是否相等)重写了hashcode()方法,因此只要内容相等hashcode也相等.
2.对于其它对象来说,不同对象可能有相同Hashcode,而对象相等的话则hashcode一定相等.
在有些情况下,程序设计者在设计一个类的时候为需要重写equals方法,比如String类,但是千万要注意,在重写equals方法的同时,必须重写hashCode方法。为什么这么说呢?
是那些情况呢,便是若用HashMap存储对象或者底层使用到HashMap的数据结构(如HashSet),因为HashMap中对象的唯一性有两个判断条件,一个是内容(.equal),一个是HashCode,
那如何重写HashCode方法呢,通常是类中的一个具有唯一性的字符串如
public
int
hashCode() {
// TODO Auto-generated method stub
return
name.hashCode()*
37
+age;
}
对象是一个人,这个人的name具有唯一性,而开头我们也说过相同内容的String具有相同的HashCode
哈希表的时间复杂度问题
存储的时间复杂度为O(1)
查询的时间复杂度为O(1)(相当于数组存储,Hash码相当于一个指针直接指向内存)
因为HashMap实际上是用一个数组实现
存储的时间复杂度为O(1)
0 0
- Java HashMap分析及其它
- Rust: HashMap的用法及其它
- (10) java源码分析 ---- HashMap源码分析 及其 实现原理分析
- (10) java源码分析 ---- HashMap源码分析 及其 实现原理分析
- java HashMap类分析
- java数据结构-HashMap分析
- Java HashMap 源码分析
- java HashMap源码分析
- java HashMap深度分析
- java-HashMap分析
- java hashmap深度分析
- java hashmap深度分析
- java hashmap深入分析
- Java源码分析:HashMap
- Java-HashMap源码分析
- [Java]HashMap源码分析
- Java HashMap源码分析
- 《Java源码分析》:HashMap
- SpringMVC访问静态资源
- Bootstrap 标签页插件
- 程序中的小细节——datepicker的两种显示方式,spinner和calendar
- linux 安装hadoop是32位的需要手工编译成64位
- 安装Halcon10.0
- Java HashMap分析及其它
- React Native网络请求学习笔记(Android版本)
- C++ 实现反射机制
- 不同形状的头像
- js学习笔记:严格模式
- BZOJ 3672 [Noi2014]购票【点分+斜率优化
- 在Fragment中webView的回退问题
- 系统开发奥若拉模式
- 约瑟夫环