关于集合的整理

首先给出集合框架图
这里写图片描述
Collection接口是处理对象集合的根接口
List接口扩展自Collection,它可以定义一个允许重复的有序集合,从List接口中的方法来看,List接口主要是增加了面向位置的操作,允许在指定位置上操作元素,同时增加了一个能够双向遍历线性表的新列表迭代器ListIterator。

LinkedList适用于插入和删除元素。
链表与数组一样,都作为数据的基本存储结构,但是在存储原理上二者是不同的。在数组中,数据是存储在一段连续的内存空间中,我们可以通过下标来访问数组中的元素;而链表将每个对象存放在独立的节点中,每个节点还存放着序列中下一个节点的引用。在Java设计语言中,所有的链表实际上都是双向链接的。
链表是一个有序集合,每个对象的位置十分重要。
这里写图片描述

ArrayList用数组存储元素的,这个数组可以动态创建,如果元素个数超过了数组的容量,那么就创建一个更大的新数组,并将当前数组中的所有元素都复制到新数组中。适用于查找和遍历元素的集合。
capacity是默认的容量
elementData是列表中存放对象的数组,Java泛型只是编译器提供的语法糖,所以这里的数组是一个Object数组,以便能够容纳任何类型的对象。
size该列表的所存放的对象数量
这里写图片描述
ArrayList的底层是基于数组实现的。既然ArrayList是用数组对象来作为存储容器,那么其内存模型也和数组是一致的,是一个连续的大小相同的内存。
这里写图片描述
ArrayList内存模型
如图所示,在这段源码中数组对象的长度为5,但是调用list.size()则返回的是3。

有序无序判断

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值