集合框架库中各集合的特点和应用场景

集合框架库中各集合的特点和应用场景

  1. Map接口
    (1) HashMap
    特点:· key不能重复;
    · 可以存储一个Key为null,多个value为null的元素
    · 不能保证有序性;【升序】
    应用场景:统计数据
    (2) Hashtable
    特点:· key不能重复;
    · key和value都不能为null;
    · 不能保证有序性;【降序】
    应用场景:统计数据,较HashMap线程安全
    (3) LinkedHashMap
    特点:· key不能重复;
    · key和value都不能为null;
    · 保证有序性;
    · 继承自HashMap,底层实现双链表
    应用场景:排序统计数据
    (4) TreeMap
    特点:· key不能重复;
    · key不能为null;
    · 不能保证有序性;【默认key升序,可添加Comparator比较器自定义排序】
    · 底层实现红黑树
    应用场景:按照特定顺序统计数据
  2. Queue接口
    PriorityQueue
    特点:· 数据可以重复
    · 不能存储null
    · 基于堆实现
    应用场景:最大值/最小值求解;Top K问题
  3. List接口
    (1) ArrayList
    特点:· 数据可重复;
    · 保证有序性;
    · 可以存储null;
    · 底层为数组
    应用场景:保存数据、适用于查询较多,修改较少的场景,随机访问数据set、get
    (2) LinkedList
    特点:· 数据可重复;
    · 保证有序性;
    · 可以存储null;
    · 底层为双链表
    应用场景:保存数据、适用于修改较多,查询较少的场景,随机新增或删除数据add、remove
  4. Set接口
    (1) HashSet
    特点:· 数据不重复;
    · 无法保证有序性;
    · 可以存储null;
    · 底层为HashMap,键值对中key存储数据、new Object PRESENT填充value
    应用场景:数据去重
    (2) LinkedHashSet
    特点:· 数据不重复;
    · 保证有序性;
    · 可以存储null;
    · 底层为LinkedHashMap,继承自HashSet,利用双向链表来实现的数据有序
    应用场景:在去重的基础上实现插入数据有序
    (3) TreeSet
    特征:· 数据自然有序(可以实现自定义排序,实现Comparator接口)
    · 数据不重复;
    · 不能存储null;
    · 底层基于TreeMap实现,利用红黑树来实现的数据有序
    应用场景:数据需要去重,且数据按照特定大小(或自定义)进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值