java集合

一、Collection的全局继承关系

在这里插入图片描述

二、系列文章

【Java集合系列一】ArrayList解析

备注:

1、ArrayList本质上就是一个数组,所有对外提供的方法都是对数组操作的封装;

2、比如add操作,先扩容,然后插入到数组中;set操作,本质上就是替换操作;删除操作,就是将待删除元素之后所有的元素统统前移一位;indexOf操作,就是遍历数组,找到元素所在位置的下标;

3、此类中依赖元素对象的equals方法,不依赖hashCode方法;

4、此类中扩容、删除等操作,需要操作数组,严重依赖System.arrayCopy()方法;

【Java集合系列二】LinkedList解析

备注:

1、LinkedList采用双向链表存储、处理元素;

2、定义2个指针:first和last,支持双向操作;

3、LinkedList还提供了很多特有的方法,比如支持队列式访问的方法;

4、其他同ArrayList;

5、LinkedList和ArrayList如何选择?

普通意义上理解,数组按照下标访问元素,速度更快,但是如果是遍历或者使用indexOf,那么ArrayList没什么优势;至于插入和删除,由于ArrayList涉及到扩容,如果ArrayList触发扩容,代价较高,否则,如果插入和删除都在末尾,那么没什么区别,如果是在列表中间,那么LinkedList优势巨大;至于修改元素,ArrayList代价较小,LinkedList需要先遍历得到index位置的元素,才能替换。

结论:

如果有大量的访问、替换操作,且是通过下标来使用的,那么选择Arraylist,这样最能发挥ArrayList的优势。其他比如遍历访问,两者差不多,除此之外的其他使用场景,优先推荐使用LinkedList。

【Java集合系列三】Vector-Stack解析

Vector和ArrayList的异同:

1、扩容策略不同;

2、线程安全的;

3、提供了一些独特的如removeElement()之类的方法;

4、其他方法的实现与ArrayList几乎是一致的,毕竟都是对数组的操作;

5、忽略这个类即可;

【Java集合系列四】HashSet和LinkedHashSet解析

【Java集合系列五】HashMap解析

【Java集合系列六】LinkedHashMap解析

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值