全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

List和Set及其各自子类有什么区别?

发布时间:2022-09-20 16:01:30
发布人:wjy

  ArrayList,LinkedList,Vector都属于List。

  1. List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)

  |-- ArrayList: 底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步。

  |-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢。

  |--Vector: 底层是数组数据结构,线程同步,被ArrayList代替了,现在用的只有他的枚举。

List和Set及其各自子类有什么区别?

  2. Set:元素是无序的,且不可以重复(存入和取出的顺序不一定一致),线程不同步。

  |--HashSet:底层是哈希表数据结构。根据hashCode和equals方法来确定元素的唯一性。

  |--TreeSet:可以对Set集合中的元素进行排序(自然循序),底层的数据结构是二叉树,也可以自己写个类实现Comparable或者Comparator接口,定义自己的比较器,将其作为参数传递给TreeSet的构造函数。

  3. Map:这个集合是存储键值对的,一对一对往里存,而且要确保键的唯一性(01,张三)这样的形式打印出来就是01=张三

  |--HashTable:底层是哈希表数据结构,不可以存入null键和null值,该集合线程是同步的,效率比较低。出现于JDK1.0

  |--HashMap:底层是哈希表数据结构,可以存入null键和null值,线程不同步,效率较高,代替了HashTable,出现于JDK。

  |--TreeMap:底层是二叉树数据结构,线程不同步,可以用于个map集合中的键进行排序。

相关文章

计算机视觉中所指的深度和深度学习中的深度有什么区别?

计算机视觉中所指的深度和深度学习中的深度有什么区别?

2023-10-15
显著性目标检测和一般目标检测最本质的区别是什么区别?

显著性目标检测和一般目标检测最本质的区别是什么区别?

2023-10-15
在目标检测里single-shot和multi-shot的主要区别是什么?

在目标检测里single-shot和multi-shot的主要区别是什么?

2023-10-15
APP安全测试与普通B/S架构的渗透测试有什么区别?

APP安全测试与普通B/S架构的渗透测试有什么区别?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取