欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程资源 > 编程问答 >内容正文

编程问答

arraylist源码 -ag凯发k8国际

发布时间:2024/10/14 编程问答 9 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 arraylist源码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
public class arraylist extends abstractlist implements list, randomaccess, cloneable, java.io.serializable

实现了 randomaccess 接口,因此支持随机访问。这是理所当然的,因为arraylist 是基于数组实现的。

数组的默认大小为 10。

private static final int default_capacity = 10;

arraylist基于数组实现,并且具有动态扩容特性,因此保存元素的数组不一定都会被使用,那么就没必要全部进行序列化。

保存元素的数组elementdata使用transient修饰,该关键字声明数组默认不会被序列化。

transient object[] elementdata; // non-private to simplify nested class access

arraylist 实现了writeobject() 和 readobject() 来控制只序列化数组中有元素填充那部分内容。

private void readobject(java.io.objectinputstream s) throws java.io.ioexception, classnotfoundexception {elementdata = empty_elementdata;// read in size, and any hidden stuffs.defaultreadobject();// read in capacitys.readint(); // ignoredif (size > 0) {// be like clone(), allocate array based upon size not capacityensurecapacityinternal(size);object[] a = elementdata;// read in all elements in the proper order.for (int i=0; i
网站地图