java的ArrayList源码摘要

ArrayList本质上是一组对象数组,ArrayList有三种构造方法 1.指定长度创建ArrayList,2.默认长度为10创建.3,用旧的集合创建一个ArrayList.

  对ArrayList的操作,都会被modCount记录下来

  ArrayList的增长策略:ensureCapacity()方法 

      先获取旧的数组长度,和传进来的长度比较,如果旧的长度不够用了,就用公式(oldCapacity*3)/2+1来获取新的长度,如果通过公式算出来的长度还是小于传进来的长度,就使用传进来的长度做为新的长度,这就实现了动态增长

indexOf  从前循环返回传入对象在集合里第一次出来的位置的索引  没找到返回-1

lastIndexOf 从后循环返回传入对象在集合里第一次出来的位置的索引  没找到返回-1

transient Java关键字 使用这关键字修饰的成员变量,不参加序列化

RandomAccess接口:又一个标记接口 在对列表进行随机或顺序访问的时候,访问算法能够选择性能最佳方式。可以用来保证算法的性能,感觉也是区分ArrayList和LinketList的区别

上一篇:maven编译时候报"编码 GBK 的不可映射字符"


下一篇:gcc中不同namespace中同名class冲突时