数据结构_ArrayList

从ArrayList源码对其原理总结:

1.集合与数组的区别

  • 数组效率高,而集合是基于数组的,底层是数组;
  • 数组功能单一:创建后大小固定,只能存一种数据类型,而集合扩展了数组的功能:可以自动扩容,可以存多种数据类型;

2.ArrayList属性

   ①DEFAULT_CAPACITY :int   默认容量大小为10;

   ②EMPTY_ELEMENTDATA : Object[]  值={},为空数组的实例;

   ③DEFAULTCAPACITY_EMPTY_ELEMENTDATA : Object[]  值={},默认大小的为空数组的实例;

   ④size : int 私有属性,表示集合大小,与size()方法不同,我们通常使用size()方法;

   ⑤MAX_ARRAY_SIZE : int  值= 2^31-1-8 ,最大数组分配值(2^31-1是int最大值)

   ⑥elementData : Object[] 存储数组;

   ⑦其他继承属性:modCount:修改的次数

3.ArrayList方法

  • size()方法获取大小;
  • public boolean contains(Object o)方法
①如果o为null,循环数组中是否有null,是返回下标,否则返回-1,最后与0比较大小返回boolean;
②如果o不为null,循环数组中是否存在该对象;
使用equals方法判断(父类引用子类对象, 会调用子类的equals方法,如果子类未重写equals方法,则默认object中的方法,只比较对象的引用,即=),
相等则返回下标,否则返回-1,最后与0比较大小返回boolean;
  • 。。。

4.使用场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值