千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > List和Set及其各自子类有什么区别?

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

来源:千锋教育
发布人:wjy
时间: 2022-09-20 16:01:30 1663660890

  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集合中的键进行排序。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT