学习集合

集合小记

在这里插入图片描述
List 有序可重复
Arraylist 底层是数组 查询快增删慢 线程不安全 效率高

linkedlist  底层数据结构是链表 查询慢 增删快  线程不安全效率高

Vector 底层是数组 查询快 增删慢 线程安全 效率低

Set 无序 唯一
Hashset 底层数据结构是哈希表 (无序唯一)如何保证唯一性,当有重复数据时会覆盖原来的数据

Linkedhashset 底层是链表和哈希表. 插入有序 唯一(fifo先进先出)
链表保证元素有序 哈希表保证唯一

Treeset 底层是红黑树 唯一有序
如何保证元素排序
自然排序
比较器排序
如何保证元素的唯一性呢
根据比较的返回值是否是0来决定

针对collection集合如何决定用谁?

先判断数据是否唯一? 如果唯一用set ,是否需要排序,是用treeset /linkedhashset,不是用hashset
不唯一用list,是否需要安全,是用vector否用ArrayList/linkedlist 个人建议都不要用vector
查询多用arraylist 增删多用linkedlist

                                 如果只知道是collection集合,但不知道用谁,就用ArrayList

Map接口
在这里插入图片描述
Map接口有三个比较重要的实现类 分别是hashmap treemap和hashtable

treemap是有序的,hashmap和hashtable是无序的
hashtable的方法是同步的,hashmap不同步->
hashtable线程安全效率低,hashmap线程不安全效率较高
hashtable的所有public方法声明中都有synchronized关键字,hashtable的源码中则没有

hashtable中不允许有null值 hashmap允许null值
hashtable的父类中dictionary hashmap的父类是abstractmap

treeset的主要功能是用于排序
linkedhashset 的主要功能是保证fifo
hashset只是通用的存储数据的集合
三者都是线程不安全的

treeset可以内部实现排序,也可以自定义排序规则
内部实现自然排序
自定义排序,当存入外部类的实例时,外部类必须有排序规则,不然报错
外部类加入排序规则方法一,外部类实现compareable,重写compareto
方法二,new treeset时添加comparator(重写compare)

btree b+tree //TODO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值