栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

集合的总结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

集合的总结

1、集合与数组 1.1、什么是集合

集合:存储对象的容器,集合中可以存储任意类型的对象,而且长度可以变。

1.2、什么是数组

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

1.3、集合和数组的区别
数组和集合类都是容器
1.数组长度是固定的,集合长度是可变的。
2.数组中可以存储基本数据类型,集合只能存储对象
3.数组中存储数据类型是单一的,集合中可以存储任意类型的对象。
4.集合类的特点:用于存储对象,长度是可变得,可以存储不同类型的对象。
5.数组的缺点:存储类型单一的数据容器,操作复杂(数组一旦声明好不可变)CRUD
2、ArrayList和linkedList 2.1、ArrayList

1.数组实现,查找快,增删慢

2.数组为什么查询快?

​ 因为数组的内存空间地址是连续的。数组是可以直接按索引查找,所以查找时较快。

3.数组为什么增删慢?

​ 增删的时候会牵扯到数组扩容,以及拷贝元素,所以慢。

2.2、linkedList

1.linkedList链表实现,增删块,查找慢。

2.为什么查找慢?

​ 因为在内存中的地址不连续,需要让上一个元素记住下一个元素,每个元素都保存有下一个元素的位置,查询的时候需要一个一个遍历,所以效率较低。

3.为什么增删块?

​ 链表在插入新元素的时候,只需要让前一个元素记住新元素,让新元素记住下一个元素就可以了。所以增删快。

3、HashSet

1.添加元素的过程

1.添加元素add(key)->put(key,value)->首先计算hash(key) (h=key.hashCode())^(h>>>16)哈希散列 避免哈希冲突
2.会根据计算的hash值,计算存储在哈希桶中的哪一个下标位置(n-1)&hash;
3.一旦出现有hash值相同的情况(位于同一个哈希桶中),必须比较equals()是否相同;
若equals()比较相同,则不进行重复存放;
若equals()比较不同,则会放入同一个哈希桶中,以链表的方式追加放置(若当前已经是红黑树结构,则直接将元素添加至红黑树中),直到达到阈值8,则会将链表装换成红黑树。
4.若没有出现hash值相同的情况,则直接根据计算出来的下标进行存放位置。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/300302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号