集合Collection接口

早过忘川 提交于 2019-12-28 14:31:08

集合Collection接口: 是所有单列集合的最顶层接口

add()方法返回的意思是是否添加成功,添加动作是一定成功的。但是对于其他集合,添加不一定成功
分为list接口和set接口
List接口有序的(存储123,取出也是123),可以重复,有索引
有索引,可以使用普通for循环遍历

在这里插入图片描述

 **set接口无序不可重复**
   没有索引,不能使用带索引的方法,不能使用普通for循环遍历

哈希值:他是一个10进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来的地址,不是数据实际存储的物理地址)
在Object类有一个方法,可以获取对象的哈希值

HashSet的查询速度非常快,先把元素按照相同的哈希值分组,相同的哈希值把它挂到下面, 超过8位把他转换为红黑树
HashSet集合存储数据的结构(哈希表)
jdk1.8之前:哈希表=数组+链表
jdk1.8版本之后:哈希表也等于数组加链表,链表变成了红黑树,数组+红黑树(提高查询的速度)如果链表长度超过了8位,那么就会把链表转换为红黑树
哈希表的特点:速度快

HashSet集合不允许重复的原理

只要是new的,就会把他们存储到堆内存当中,Set集合在调用add方法的时候,add方法会调用元素的hashCode方法和equals方法,通过hashCode方法计算元素的哈希值,判断元素是否重复

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!