学大数据小胖的第十一天
作者:互联网
集合:
存储长度可变的多相同数据的存储模型
集合体系:
Collection单列:每个小区域存储的数据只有一个
List:重复
ArrayList
LenkedList
...
Set:不重复(没有index)
HashSet
TreeSet
...
Map双列:每个小区域存储的数据只有一对
HashMap
...
集合体系的关系:实现
接口的: Collection Map List Set
实现类: ArrayList LenkedList HashSet TreeSet HashMap
接口的创建方式:多态
Collection:
单列层次中多有的根
有些集合可重复,有些不可重复
没有下标
没有获取单个元素的方法
常用方法:
boolean add(E e); 添加元素
boolean remove(Object o) 从集合中移除指定元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定元素
boolean isEmpty() 判断集合是否为空
迭代器:
集合专门的遍历方式
调用itreator()方法获取一个Itreator对象
HasNext():判断迭代器中是否还有元素
next():从迭代器中取出来一个元素,取出来之后就没了
List:
接口
单列
重复
有序(有下标,有索引,有index)
继承了Collection
Collection中的方法List都有
只需要看List独有的方法
常用方法:
boolean add(int index,E element); 在集合中指定位置插入元素,可以做追加(允许index的值在原最大下标+1)
E remove(int index) 删除指定元素,并返回删除元素
E get(int index) 返回指定位置的元素
E set(int index,E element) 修改指定元素,并返回被修改元素
增强for:内部封装了一个迭代器
格式:
for(数据类型 变量名:数据 数组/单列集合){
}
LinkedList:链表结构
常用方法:
void addFirst(E e) 在列表开头插入指定元素
void addLast(E e) 在列表末尾追加指定元素
E getFirst() 返回列表第一个元素
E getLast() 返回列表末尾元素
E removeFirst() 移除第一个元素并返回
E removeLast() 移除末尾元并返回
ArrayList数组结构
数组是一种查询快,增删慢的模型
查询快:查询数据通过索引定位,查询任意数据耗时相同
删除慢:删除元素时,要将原始数据删除,同时元素进行前移
添加慢:添加元素时,要在添加位置的每一个数据进行后移,再添加元素
LinkedList链表结构
链表是一种增删快,查询慢的模型
增删快:增加和删除时,只需要修改下一个地址指向,耗时相同
查询慢:查询数据时,都需要从头开始查询
Set:不重复,没有独有的方法,学习完Collection就学完了Set
无序
没有下标
不能保证存储和取出的顺序一致
哈希值:通过地址值或内容或字符串或数组 通过计算得到的int类型的数据
Ojbect中的hashCode()方法
注意:默认同一个对象的哈希值是固定的,多次调用值相同,值不重复
特殊情况:"通话"和"重地"不是相同数据但是哈希值相同
通过重写hashCode()实现不同对象哈希值相同
Set存储机制(不重复)
当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode方法来得到该对象的hashCode值,然后根据该hashCode值决定该对象在HashSet中的存储位置。如果有两个元素它们的hashCode方法返回的值进行取模16得到的值相同,之后判断地址值和equals,如果有一个相同就判定是相同元素,然后进行覆盖,如果判断是不同元素就进行插入.
也就是说。
注意:本质上还是判断equals
HashSet:
概述:
由哈希表(实际为HashMap实例)支持。 对集合的迭代次序不作任何保证
特点:
底层数据结构是哈希表
对集合的迭代顺序不进行任何保证,就是存储和取出的顺序不一定相同
没有带索引的方法,不能使用for循环遍历
继承Set集合,元素不能重复
注意:
哈希表元素为链表的数组
TreeSet:元素有序
集合有序:有下标
元素有序:元素有排列显示的规则
元素有序,不是存储或取出有序,而是按照一定的规则进行排序,排序方式取决于构造方法
TreeSet():根据元素的自然排序进行排序
TreeSet(Comparator comparator):根据指定的比较器比较
特点:
元素有序
没有带索引的方法,不能使用for循环遍历
继承Set集合,元素不能重复
Comparable:接口 给类加上一个自然排序
排序的规则在
ComparaTo():排序的规则
返回值决定了排序方式
0:相同元素 不插入
正:插入的元素 在 已存在元素 后面 o-this 从大到小
负:插入的元素 在 已存在元素 前面 this-o 从小到大
o表示已存在元素
this表示插入的元素
标签:第十一天,index,存储,Set,元素,哈希,学大,集合,小胖 来源: https://blog.csdn.net/ZZJXP/article/details/122656097