java工具类的特点_Java工具类学习笔记

HashSet

优点:

后台实现一个hash table 加速get和contains方法。后台使用数组保存

缺点:

默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到

新的内存空间中。

线程不安全(需通过Collections.synchronizedList方法设置)

加入的元素顺序会因其内部的hash排序而改变

注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。

LinkedHashSet

优点:

后台实现一个hash table 加速get和contains方法。后台使用链表保存

缺点:

默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到

新的内存空间中。

线程不安全(需通过Collections.synchronizedList方法设置)

加入的元素顺序会因其内部的hash排序而改变

注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。

TreeSet

优点:

通过一个HashMap来实现数据的保存,内部实现红黑树数据结构,使所有元素按升序保存。

提供高效的get和contains方法,保存操作的效率为log(n)

缺点:

默认大小为16, 如果超过则需要重新申请内存空间,大小为原来的两倍,并把原来的数据内容复制到

新的内存空间中(来自HashMap)。

线程不安全(需通过Collections.synchronizedList方法设置)

加入的元素升级排序而改变

注:treeset对元素有要求,必须实现Comparable接口或是Comparator 接口)

注:通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。

CopyOnWriteArraySet

优点:

针对于对Set操作的情况有很多变化时使用,优其是在高并发的情况不想使用同步控制锁时

缺点:

消耗比较大的资料,每次作更新操作时,都会重新Copy一块内存后,再做合并操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值