源码阅读-JDK list(一)
首先查看List接口的上下继承关系。
查看第一个方法:
1.通过其实现类来学习这个方法:
实现类方法很多,首先通过常用的arrayList来学size()方法
arraylist中返回的是这个size属性值
在arraylist发生crud的时候会对这个值进行同步修改。
**1.
**add方法,调用重载的add方法,传入添加的新元素,当前数组引用,当前数组长度,
然后通过grow()方法后添加元素,然后容量 size=s+1,自增。
2.remove(int index)
这个方法并没有改变size的大小,通过fastRemove方法快速删除目标位置上的元素,导致数据上元素类似向前移动,然后把数组的最后一个元素设置为null
查看第二个方法boolean isEmpty()
查看第三个方法boolean contains(Object o);
在arrayList中通过for循环来查询出是否有此元素
查看第四个方法 boolean isEmpty();
查看第五个方法Iterator iterator();
以正确的顺序返回此列表中元素的迭代器。返回一个Itr类
查看第六个方法Object[] toArray();一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无
return (T[]) copyOf(original, newLength, original.getClass());
查看第七个方法boolean add(E e);
arraylist中返回一个新数组,如果添加的元素超出数组返回,就会扩容1.5倍
查看第八个方法boolean remove(Object o);
从此列表中删除第一次出现的指定元素,如果存在*,则将其删除。如果列表不包含元素,则*不变。更正式地,删除具有最低索引的元素
查看第九个方法boolean containsAll(Collection<?> c);
循环遍历集合中的元素,每一个进行比较值。
查看第十个方法boolean addAll(Collection<? extends E> c);
protected transient int modCount = 0;
集合大小改变次数