集合学习总结二
来源:互联网 发布:hp网络打印机怎么连接 编辑:程序博客网 时间:2024/05/19 13:26
Hase表原理:
简单的说他是通过一种算法来计算哈希值,类似于我们获取到一个数据然后给他取余数 被除数是散列表的表长。这样优势在于 存取速度快。但同时有一个问题就是哈希冲突。简单来说就是我们100%9=1 10%=1 这两个算下来的哈希值一样。这时候就需要考虑 怎么放置数据。
解决哈希冲突:首先判断两个元素是否是同一个对象。底层比较是通过equal 方法比较的 ,相同的话不会插入到表里,不同的话 他会有好多种算法在继续算出他的哈希值,其中有一种叫做链地址法(拉链法) 它类似与链表。前一个元素里放着下一个元素的地址。如下图:
HaseSet :内部使用Hase表结构 不保证顺序,不同步。使用Equal 和haseCode 来比较对象是否相同。取出只有迭代器方法
TreeSet:内部使用二叉树结构,可以通过实现compareAble 接口 实现排序。还可以使用比较器作为TreeSet 构造参数传入。
一般集合中存储的对象覆盖hashCode 和equal 。
/** * 对象自然排序 按照年龄排序 */@Overridepublic int compareTo(Student o) {if (!(o instanceof Student)) {throw new ClassCastException();}int temp = this.age - o.age;return temp == 0 ? this.stuName.compareTo(o.stuName) : temp;}
HashTable:内部数据结构哈希表 同步 不允许null 作为key value
HashMap:内部使用也是哈希表 不同步。允许key 和value 作为null 同步的话需要使用Collections.synchronizedMap(Map)
TreeMap:数据结构是二叉树。不是同步。可以对key 排序
LInkedHashMap:数据结构是链表和哈希表,集合存入和取出顺序一直。
阅读全文
0 0
- 集合学习总结二
- JAVA集合学习总结(二)
- java集合总结(二)
- 集合框架总结二
- java集合总结二
- 集合学习(二)
- 集合框架学习总结
- 集合知识点学习总结
- 学习日记-集合总结
- 学习总结-映射集合
- 集合框架学习总结
- java集合学习总结
- java集合学习总结
- Java集合学习总结
- Java知识总结-集合二
- 集合框架总结(二)
- Java集合总结(二)
- java基础知识总结(二)--集合
- 1304因子求和
- TCP——停等ARQ&连续ARQ
- jQuery easyui datagrid扩展之颜色条
- 基于不确定性主动学习的基本过程
- jvm日志输出
- 集合学习总结二
- 如何在CSDN博客中插入图片
- JQuery随笔
- 中了勒索病毒怎么办|文件解密|文件恢复
- ubuntu/deepin搭建svn服务器
- jquery 判断中文字符的长度
- sqlserver2008 数据备份,初始化所有数据从主数据库到备份数据库
- LibQQt系列之二《How to build LibQQt》
- BZOJ刷题记录