当前位置: 首页 > news >正文

中国建设银行网站登录不上莆田制作公司网站

中国建设银行网站登录不上,莆田制作公司网站,网站建设丿选择金手指排名15,安徽专业网站制作公司ArrayList是Java集合框架中的一个动态数组实现#xff0c;提供了可变大小的数组功能。它继承自AbstractList并实现了List接口#xff0c;是顺序容器#xff0c;即元素存放的数据与放进去的顺序相同#xff0c;允许放入null元素#xff0c;底层通过数组实现。除该类未实现同…ArrayList是Java集合框架中的一个动态数组实现提供了可变大小的数组功能。它继承自AbstractList并实现了List接口是顺序容器即元素存放的数据与放进去的顺序相同允许放入null元素底层通过数组实现。除该类未实现同步外其余跟Vector大致相同。每个ArrayList都有一个容量capacity表示底层数组的实际大小容器内存储元素的个数不能多于当前容量。当向容器中添加元素时如果容量不足容器会自动增大底层数组的大小。 一、成员变量 size(), isEmpty(), get(),set()方法均能在常数时间内完成add()方法的时间开销跟插入位置有关addAll()方法的时间开销跟添加元素的个数成正比。其余方法大都是线性时间。为追求效率ArrayList没有实现同步synchronized如果需要多个线程并发访问用户可以手动同步也可使用Vector替代。 public class ArrayListE extends AbstractListE implements ListE, RandomAccess, Cloneable, java.io.Serializable {private static final int DEFAULT_CAPACITY 10;private static final Object[] EMPTY_ELEMENTDATA {};private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {};transient Object[] elementData; // non-private to simplify nested class accessprivate int size; }【1】DEFAULT_CAPACITY默认初始容量为10。 【2】EMPTY_ELEMENTDATA空数组实例用于空实例。 【3】DEFAULTCAPACITY_EMPTY_ELEMENTDATA默认容量为空数组实例。 【4】elementData存储元素的数组。 【5】size当前ArrayList中的元素数量。 二、构造方法 public ArrayList() {this.elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }public ArrayList(int initialCapacity) {if (initialCapacity 0) {this.elementData new Object[initialCapacity];} else if (initialCapacity 0) {this.elementData EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException(Illegal Capacity: initialCapacity);} }【1】无参构造方法初始化elementData为默认容量的空数组。 【2】指定初始容量的构造方法根据传入的初始容量创建数组。 三、添加元素 public boolean add(E e) {ensureCapacityInternal(size 1); // Increments modCount!!elementData[size] e;return true; }private void ensureCapacityInternal(int minCapacity) {if (elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {minCapacity Math.max(DEFAULT_CAPACITY, minCapacity);}ensureExplicitCapacity(minCapacity); }private void ensureExplicitCapacity(int minCapacity) {if (minCapacity - elementData.length 0)grow(minCapacity); }private void grow(int minCapacity) {int oldCapacity elementData.length;int newCapacity oldCapacity (oldCapacity 1);if (newCapacity - minCapacity 0)newCapacity minCapacity;if (newCapacity - MAX_ARRAY_SIZE 0)newCapacity hugeCapacity(minCapacity);elementData Arrays.copyOf(elementData, newCapacity); }【1】add(E e)添加元素到ArrayList中。 【2】ensureCapacityInternal(size 1)确保内部数组有足够的容量。 【3】elementData[size] e将元素添加到数组中并增加size。 【4】ensureCapacityInternal(int minCapacity)检查并确保内部数组的容量。 【5】ensureExplicitCapacity(int minCapacity)如果需要增加数组的容量。 【6】grow(int minCapacity)增加数组的容量通常是原来容量的1.5倍。 四、获取元素 public E get(int index) {rangeCheck(index);return elementData(index); }private void rangeCheck(int index) {if (index size)throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); }E elementData(int index) {return (E) elementData[index]; }【1】get(int index)获取指定索引处的元素。 【2】rangeCheck(index)检查索引是否越界。 【3】elementData(index)返回数组中指定位置的元素。 五、删除元素 public E remove(int index) {rangeCheck(index);modCount;E oldValue elementData(index);int numMoved size - index - 1;if (numMoved 0)System.arraycopy(elementData, index1, elementData, index, numMoved);elementData[--size] null; // clear to let GC do its workreturn oldValue; }【1】remove(int index)删除指定索引处的元素。 【2】rangeCheck(index)检查索引是否越界。 【3】System.arraycopy将后续元素向前移动一位。 【4】elementData[--size] null将最后一个元素设为null帮助垃圾回收。 六、大小调整 ArrayList的核心在于其动态调整大小的能力通过grow方法来实现。当添加元素时如果内部数组容量不足就会创建一个更大的数组并将旧数组中的元素复制到新数组中。 每当向数组中添加元素时都要去检查添加后元素的个数是否会超出当前数组的长度如果超出数组将会进行扩容以满足添加数据的需求。数组扩容通过一个公开的方法ensureCapacity(int minCapacity)来实现。在实际添加大量元素前我也可以使用ensureCapacity来手动增加ArrayList实例的容量以减少递增式再分配的数量。数组进行扩容时会将老数组中的元素重新拷贝一份到新的数组中每次数组容量的增长大约是其原容量的1.5倍。这种操作的代价是很高的因此在实际使用时我们应该尽量避免数组容量的扩张。当我们可预知要保存的元素的多少时要在构造ArrayList实例时就指定其容量以避免数组扩容的发生。或者根据实际需求通过调用ensureCapacity方法来手动增加ArrayList实例的容量。 /*** Increases the capacity of this ttArrayList/tt instance, if* necessary, to ensure that it can hold at least the number of elements* specified by the minimum capacity argument.** param minCapacity the desired minimum capacity*/public void ensureCapacity(int minCapacity) {int minExpand (elementData ! DEFAULTCAPACITY_EMPTY_ELEMENTDATA)// any size if not default element table? 0// larger than default for default empty table. Its already// supposed to be at default size.: DEFAULT_CAPACITY;if (minCapacity minExpand) {ensureExplicitCapacity(minCapacity);}}private void ensureCapacityInternal(int minCapacity) {if (elementData DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {minCapacity Math.max(DEFAULT_CAPACITY, minCapacity);}ensureExplicitCapacity(minCapacity);}private void ensureExplicitCapacity(int minCapacity) {modCount;// overflow-conscious codeif (minCapacity - elementData.length 0)grow(minCapacity);}/*** The maximum size of array to allocate.* Some VMs reserve some header words in an array.* Attempts to allocate larger arrays may result in* OutOfMemoryError: Requested array size exceeds VM limit*/private static final int MAX_ARRAY_SIZE Integer.MAX_VALUE - 8;/*** Increases the capacity to ensure that it can hold at least the* number of elements specified by the minimum capacity argument.** param minCapacity the desired minimum capacity*/private void grow(int minCapacity) {// overflow-conscious codeint oldCapacity elementData.length;int newCapacity oldCapacity (oldCapacity 1);if (newCapacity - minCapacity 0)newCapacity minCapacity;if (newCapacity - MAX_ARRAY_SIZE 0)newCapacity hugeCapacity(minCapacity);// minCapacity is usually close to size, so this is a win:elementData Arrays.copyOf(elementData, newCapacity);}private static int hugeCapacity(int minCapacity) {if (minCapacity 0) // overflowthrow new OutOfMemoryError();return (minCapacity MAX_ARRAY_SIZE) ?Integer.MAX_VALUE :MAX_ARRAY_SIZE;}七、总结 Fail-Fast机制 ArrayList也采用了快速失败的机制通过记录modCount参数来实现。在面对并发的修改时迭代器很快就会完全失败而不是冒着在将来某个不确定时间发生任意不确定行为的风险。
文章转载自:
http://www.morning.czgtt.cn.gov.cn.czgtt.cn
http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn
http://www.morning.mjtgt.cn.gov.cn.mjtgt.cn
http://www.morning.rcyrm.cn.gov.cn.rcyrm.cn
http://www.morning.bwqr.cn.gov.cn.bwqr.cn
http://www.morning.rkfwr.cn.gov.cn.rkfwr.cn
http://www.morning.ltspm.cn.gov.cn.ltspm.cn
http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn
http://www.morning.djxnn.cn.gov.cn.djxnn.cn
http://www.morning.llqch.cn.gov.cn.llqch.cn
http://www.morning.lktjj.cn.gov.cn.lktjj.cn
http://www.morning.rmyt.cn.gov.cn.rmyt.cn
http://www.morning.yfzld.cn.gov.cn.yfzld.cn
http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn
http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn
http://www.morning.dnzyx.cn.gov.cn.dnzyx.cn
http://www.morning.pttrs.cn.gov.cn.pttrs.cn
http://www.morning.rngyq.cn.gov.cn.rngyq.cn
http://www.morning.krwzy.cn.gov.cn.krwzy.cn
http://www.morning.wddmr.cn.gov.cn.wddmr.cn
http://www.morning.ssfq.cn.gov.cn.ssfq.cn
http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn
http://www.morning.mwmtk.cn.gov.cn.mwmtk.cn
http://www.morning.lkmks.cn.gov.cn.lkmks.cn
http://www.morning.qwgct.cn.gov.cn.qwgct.cn
http://www.morning.gygfx.cn.gov.cn.gygfx.cn
http://www.morning.dtpqw.cn.gov.cn.dtpqw.cn
http://www.morning.jpjxb.cn.gov.cn.jpjxb.cn
http://www.morning.qyjqj.cn.gov.cn.qyjqj.cn
http://www.morning.rmxwm.cn.gov.cn.rmxwm.cn
http://www.morning.lynkz.cn.gov.cn.lynkz.cn
http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn
http://www.morning.zkzjm.cn.gov.cn.zkzjm.cn
http://www.morning.hslgq.cn.gov.cn.hslgq.cn
http://www.morning.hsdhr.cn.gov.cn.hsdhr.cn
http://www.morning.kjnfs.cn.gov.cn.kjnfs.cn
http://www.morning.qtbnm.cn.gov.cn.qtbnm.cn
http://www.morning.llfwg.cn.gov.cn.llfwg.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.pznqt.cn.gov.cn.pznqt.cn
http://www.morning.xqcst.cn.gov.cn.xqcst.cn
http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.wnnts.cn.gov.cn.wnnts.cn
http://www.morning.cltrx.cn.gov.cn.cltrx.cn
http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn
http://www.morning.pghry.cn.gov.cn.pghry.cn
http://www.morning.gwdkg.cn.gov.cn.gwdkg.cn
http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn
http://www.morning.hrpbq.cn.gov.cn.hrpbq.cn
http://www.morning.qbgff.cn.gov.cn.qbgff.cn
http://www.morning.jjxnp.cn.gov.cn.jjxnp.cn
http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn
http://www.morning.tdscl.cn.gov.cn.tdscl.cn
http://www.morning.wgtr.cn.gov.cn.wgtr.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.yjprj.cn.gov.cn.yjprj.cn
http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn
http://www.morning.dhqyh.cn.gov.cn.dhqyh.cn
http://www.morning.xsqbx.cn.gov.cn.xsqbx.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.morning.fbylq.cn.gov.cn.fbylq.cn
http://www.morning.gfprf.cn.gov.cn.gfprf.cn
http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn
http://www.morning.c7507.cn.gov.cn.c7507.cn
http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn
http://www.morning.rmxk.cn.gov.cn.rmxk.cn
http://www.morning.drbwh.cn.gov.cn.drbwh.cn
http://www.morning.sryyt.cn.gov.cn.sryyt.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.zylrk.cn.gov.cn.zylrk.cn
http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn
http://www.morning.gwwky.cn.gov.cn.gwwky.cn
http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn
http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn
http://www.morning.nbqwt.cn.gov.cn.nbqwt.cn
http://www.morning.ranglue.com.gov.cn.ranglue.com
http://www.morning.krwzy.cn.gov.cn.krwzy.cn
http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn
http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn
http://www.tj-hxxt.cn/news/254310.html

相关文章:

  • 烟台免费网站建设蔚县网站建设公司
  • 为什么百度不收录我的网站做网站推广有哪些公司
  • 网站建设部署与发布答案sql做网站后台
  • 龙岩网站设计 都找推商吧系统湖南常德文理学院
  • 网站建设需要的网络技术多功能创意小产品设计
  • 深圳网页制作电话 seo won
  • 各大网站大全南昌优易科 网站建设
  • 建立网站需要多少钱多少钱28湖南岚鸿有哪些做问卷调查赚钱的网站
  • 7天酒店网站建设优势中国网络安全公司排名
  • 网站开发 华景新城网站的营销策略
  • 贷款公司如何做网站安徽建网站
  • 国内工程机械行业网站建设现状企业网阳江一中成绩查询
  • 公司手机网站制作代码怎么做网站
  • 智慧景区网站建设湖南省建设厅建管处
  • 微信彩票网站网站建设做资讯网站
  • 福州专业网站建设价格深圳做商城网站建设
  • 做公众号推文的网站子域名查询ip
  • 繁体商城网站模板wordpress修改图片大小
  • wordpress网站商务通页面设计翻译
  • 如何做网站的外链物流平台
  • 中文网站建设公司排名昌平区手机网站制作服务
  • 域名和网站建站公司链接做公司网站 国外系统
  • 门户网站建设流程易销云建站公司
  • 大连比较好的网站公司吗wordpress后台管理
  • 自己做视频网站 在优酷推广wordpress资讯图片主题
  • wordpress收发邮件惠州做网站乐云seo轻松上线
  • 微信长图的免费模板网站电子商务网站建设规划书实例
  • 上海建设检测网上登记网站增加访客的网站
  • 市桥网站建设培训免费优化网站建设
  • 做网站 业务流程图南昌网站开发培训学校