集合Collection接口

集合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方法计算元素的哈希值,判断元素是否重复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值