hash算法学习
总结下在java使用到hash的地方,因个人知识欠缺,整理不全请谅解
HashSet特点:
- 不允许存储重复的元素
- 没有索引,没有带索引的方法,也不能使用普通的for循环遍历
- 是一个无序的集合,存储元素和取出元素的顺序有可能不一致
- 底层是一个哈希表结构(查询的速度非常快)
- HashSet集合存储数据的结构(哈希表)哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到的地址,不是数据实际存储的物理地址),在Object类有一个方法,可以获取对象的哈希值
LinkedHashSet集合:
1.LinkedHashSet集合特点:底层是一个哈希表(数组+链表/红黑树+链表:多了一条链(记录元素的存储顺序),保存元素有序
HashSet<String> set = new HashSet<>();//[]无序,不允许重复 LinkedHashSet<String> set = new LinkedHashSet<>();[]//有序,不允许重复
hashCode方法:
bean重写hashCode方法和equals方法
感谢分享者https://blog.csdn.net/u012834750/article/details/80005162