List和Set 总结
一 List三个子类的区别和应用场景
Vector:底层是数组,查询快,增删慢
Arraylist:底层是数组,查询块,增删慢
LinkedList:底层是链表,查询慢,增删快
效率:
Vector:线程同步(安全),效率低
ArrayList:线程不同步(不安全),效率高
它用来代替Vector的。
LinkedList:线程不安全,效率高
二 Set集合的三个子类:
- HashSet集合
- 底层其实是包装了一个HashMap实现的
- 底层数据结构是数组+链表 + 红黑树
- 具有比较好的读取和查找性能, 可以有null 值
- 通过equals和HashCode来判断两个元素是否相等
- 非线程安全
- LinkedHashSet集合
- 继承HashSet,本质是LinkedHashMap实现
- 底层数据结构由哈希表(是一个元素为链表的数组)和双向链表组成。
- 有序的,根据HashCode的值来决定元素的存储位置,同时使用一个链表来维护元素的插入顺序
- 非线程安全,可以有null 值
- TreeSet集合
- 是一种排序的Set集合,实现了SortedSet接口,底层是用TreeMap实现的,本质上是一个红黑树原理
- 排序分两种:自然排序(存储元素实现Comparable接口)和定制排序(创建TreeSet时,传递一个自己实现的Comparator对象)
- 正常情况下不能有null值,可以重写Comparable接口 局可以有null值了。
- EnumSet
- 集合元素必须是枚举类型,否则会抛出异常
- EnumSet集合也是有序的,其顺序就是Enum类内元素定义的顺序
- · EnumSet存取的速度非常快,批量操作的速度也很快
随机推荐
- man 手册--nc
man 手册--nc NCAT(1) Ncat Reference Guide NCAT(1) NAME ncat - Concatenate and redirect sockets SYNOPSI ...
- 三星Q470c Logo界面无限掉电重启,变砖后的挽救过程
背景 三星笔记本的部分型号如:NP530 Q470等 安装win8后再次重装系统(我弄了个Ubuntu18)会导致无法进入BIOS菜单页面的问题.启动显示logo页面后,能够听到明显啪的一声(硬盘掉电 ...
- 用Python做一个飞机大战游戏
基于pygame的一款小游戏 这是我上半年做的一款小游戏,但是一直忘记了,现在才上传代码. github项目地址:StarMan 代码基于pygame,Python版本3.5.2运行正常. 游戏很简单 ...
- ArcGIS10.6 通过ArcMap发布二维数据服务。
ArcGIS版本基本每年都会更新,原来一直用10.2,在ArcMap中发布服务: 最近安装10.6整套系统,发现在ArcMap中输入http:id:6080/arcgis 输入用户名,密码 无法登录 ...
- go语言合并两个数组
https://stackoverflow.com/questions/16248241/concatenate-two-slices-in-go Add dots after the second ...
- SPFA的优化
[为什么要优化] 关于SPFA,他死了(懂的都懂) 进入正题... 一般来说,我们有三种优化方法. SLF优化: SLF优化,即 Small Label First 策略,使用 双端队列 进行优 ...
- slice(), splice(),split(),indexOf(),join(),replace()
1.slice() slice() 方法可以接受一或两个参数,即要返回项的起始和结束位置. 在只有一个参数的情况下, slice() 方法返回从该参数指定位置开始到当前数组末尾的所有项. 如果有两个参 ...
- Python进阶:都说好用的 Python 命令行库click
click 是一个以尽可能少的代码.以组合的方式创建优美的命令行程序的 Python 包.它有很高的可配置性,同时也能开箱即用. 它旨在让编写命令行工具的过程既快速又有趣,还能防止由于无法实现预期的 ...
- ansible的安装和简单使用
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真 ...
- Codeforces Round #585 (Div. 2) D. Ticket Game
链接: https://codeforces.com/contest/1215/problem/D 题意: Monocarp and Bicarp live in Berland, where eve ...