java中ArrayList类的操作
ArrayList類是Java集合框架出現之后用來取代Vector類的:
二者底層原理都是基于數組的算法,一模一樣.
區別:
Vector: 所有的方法都使用了synchronized修飾符. 線程安全但是性能較低. 適用于多線程環境.
ArrayList:所有的方法都沒有使用synchronized修飾符. 線程不安全但是性能較高.
即使以后在多線程環境下,我們也不使用Vector類:
ArrayList list = Collections.synchronizedList(new ArrayList(…));
常用方法參照與Vector類.
閱讀源代碼發現,Vector和ArrayList的源代碼差異有點大(從設計上考慮).
有的時候某個方法需要返回一個ArrayList對象:
但是在該方法中,如果一個都沒有查詢到,我們不會返回null,我們會返回一個空集對象(沒有元素的集合).
public ArrayList getAll()
{
//TODO
//return Collections.emptyList();//最好的方式.
return new ArrayList();//但是很多人最直觀,最簡單選用的方式
}
在Java7之前,即使使用new ArrayList創建對象,一個元素都不存儲,但是在堆空間依然初始化了長度位10的Object數組,沒必要.
從Java7開始優化這個設計,new ArrayList,其實底層創建的使用一個空數組.
Object [] elementData = new Object[]{};
在第一次調用add方法的時候,才會重新去初始化數組.
ArrayList底層實現方法
總結
以上是生活随笔為你收集整理的java中ArrayList类的操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis之快速入门
- 下一篇: 运行第一个node.js文件