【Java基础】常用集合(List、Map等)优缺点与特性总结

  • 常见数据结构的特点
  • 集合体系

常见数据结构的特点

  • 在聊常用集合之前,得先来看看常见的数据结构的特点,毕竟集合的实现可离不开各个数据结构的;

​ ① 数组(Array): 有索引,内存连续分配,查询快,增删慢

​ ② 链表(linked list): 内存不连续,增删快,查询慢

​ ③ 栈(stack): 出口与入口是同一个,先进后出

​ ④ 队列(queue): 出口与入口各占一侧,先进先出

​ ⑤ 树结构(tree): 查询速度相当快

集合体系

  • 集合分为单列集合(Collection)与双列集合(Map);

Collection集合

 

0ff6b6719752aae5d69047a6c9261e65.png

  • Collection是单列集合的根接口;
  • List集合特点是: 有序(存取一致),有索引,可重复;
  • List接口常用方法:(增add,删remove,改set,查get);
  • Set集合特点:无索引,不可重复(唯一)。

ArrayList集合(推荐)

  • 底层数据结构: 数组
  • 数组: 查询快,增删慢;
  • 查询快原因: 有索引,元素内存连续分配;
  • 线程不安全,效率高。

LinkedList集合

  • 底层采用链表的数据结构;
  • 链表的数据结构: 增删快,查询慢

Vector集合

  • 底层数据结构: 数组
  • 数组: 查询快,增删慢;
  • 线程安全,效率低。

HashSet集合

  • 数据结构:哈希表(数组+链表/红黑树(链表节点数量>8));
  • 存储的元素无序,不可重复。

LinkedHashSet集合

  • 数据结构:哈希表+链表;
  • 存储的元素有序(按存取顺序),不可重复。

TreeSet集合

  • 数据结果:红黑树;
  • 有序,可以自定义比较器排序。

Map集合

 

8e0146a6e582694ddf8ec3fca7a285d7.png

HashMap集合

  • 数据结构:哈希表;
  • 无序,线程不安全,支持null值。

LinkedHashMap集合

  • 数据结构:哈希表+链表;
  • 存取顺序一致,支持null值。

HashTable集合

  • 数据结构:哈希表;
  • 线程安全,不支持null值,效率低。

TreeMap集合

  • 数据结构:红黑树;
  • 有序,主要用于排序(自然排序或者自定义比较器排序)。

  了解各个集合的数据结构和特点主要是为了平时在使用的时候能根据实际场景需要选择合适的集合,比如增删多,查询少的就用LinkedList等;如果说记不清特点,不知道用哪个了,那么就用ArrayList和HashMap;

注意:本文归作者所有,转载请注明出处

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maoway稻草人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值