分不多,半夜请教。ArrayList没有同步是什么意思,我记得Vector存在同步问题,所以效率不好,能解释一下吗?请教,感谢。

解决方案 »

  1.   

    ensureCapacity有什么作用,感谢,
      

  2.   

    ensureCapacity为什么能增加插入效率?感谢
      

  3.   

    没看过ARRAYLIST的JAVA实现,一般来说
    arraylist中的数据是靠内部的一个OBJECT ARRAY保存的,在初始化时,如果程序员不指定,这个OBJECT ARRAY就会按默认的大小被创建,比如16个元素.当程序员申请加入第17个元素时,ARRAYLIST会自动扩充现有数组,比如扩充到32.所以这个重新创建数组并搬运数据的过程是非常耗时的,因此,如果程序员能够预见数组大小,尽量减小扩充的次数,效率自然会提高.至于同步,自然是指不同县城操作同一对象带来的访问问题.
      

  4.   

    如果ArrayList为共享资源,并且有多个线程对其进行读写访问,就会得到不可预期的结果,要义线程同步的方式解决,即一个线程访问时,拒绝另外的线程访问