java基础之集合系列(一)

1:什么是集合。
集合就是一个放数据的容器,准确的说是放数据对象引用的容器,主要存放于java.util包中。

2:集合框架整体架构概图。

在这里插入图片描述

Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue(Java5新增的队列上图未展示),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系,(注意:Map不是Collection的子接口)。

3:collection接口
Collection作用就是规定了一个集合有哪些基本的操作。

4:list集合

List集合代表一个有序、可重复集合,集合中每个元素都有其对应的顺序索引。List集合默认按照元素的添加顺序设置元素的索引,可以通过索引(类似数组的下标)来访问指定位置的集合元素,实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack。

4.1ArrayList解析:

ArrayList是一个动态数组,它允许任何符合规则的元素插入甚至包括null,每一个ArrayList都有一个初始容量(10),该容量代表了数组的大小。jdk1.8源码图如下
在这里插入图片描述

ArrayList的初始化
在这里插入图片描述

增加元素与扩容机制

在这里插入图片描述

删除元素

在这里插入图片描述

修改当前实例的容量是列表的当前大小

在这里插入图片描述

遍历
在这里插入图片描述

与LinkList、Vector对比区别

分析得出下面结论:

(1)ArrayList 本质上是一个可改变大小的数组.当元素加入时,其大小将会动态地增长.元素顺序存储 ,查询效率快,增删速度慢,非线程安全.

(2)LinkedList 是一个双向循环链表,在添加和删除元素时具有比ArrayList更好的性能.但在查询方面弱于ArrayList.,增删操作很快,不耗费多余资源 ,允许null元素,非线程安全.

(3)Vector (类似于ArrayList)但其是同步的,开销就比ArrayList要大。如果你的程序本身是线程安全的,那么使用ArrayList是更好的选择。Vector和ArrayList在更多元素添加进来时会请求更大的空间。Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.

ArrayList总结

ArrayList自己实现了序列化和反序列化的方法

add(int index, E element):添加元素到数组中指定位置的时候,需要将该位置及其后边所有的元素都整块向后复制一位

remove(int index)不需要遍历数组,只需判断index是否符合条件即可,效率比remove(Object o)高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值