List、Set、Map各个子类的区别

List

ArrayList

  • 底层结构: 数组
  • 插入/删除原理: 数组动态自动扩容和数组复制
  • 其他: 线程不安全,支持随机访问,查询速度快,增删慢

LinkedList

底层结构: 链表
插入/删除原理: 改变指针
其他: 线程不安全,不支持随机访问,查询速度慢,增删快

Vector

底层结构: 数组
插入/删除原理: 数组动态自动扩容和数组复制
其他: 线程安全,支持随机访问,查询速度快,增删慢

数组与链表:
【数组】要求在内存中必须是连续的地址;可以直接访问其中任意一个数据,即随机访问
【链表】在内存中不要求地址连续;不可以直接访问其中任意一个数据,必须从第一个元素开始遍历至需要查询的数据

Set

  • HashSet是基于Hash算法实现的,其综合性能优越于TreeSet。
  • TreeSet可以实现自动排序。

Map

  • HashMap: 线程不安全,不自动排序
  • TreeMap: 线程不安全,自动根据键排序
  • HashTable: 线程安全,不自动排序
发布了22 篇原创文章 · 获赞 8 · 访问量 2556

猜你喜欢

转载自blog.csdn.net/weixin_46192593/article/details/105014727