List and ArrayList:
1、List是一個接口,ArrayList是一個實現了List接口的具體類。 他們是父子關系,我們常用的是ArrayList,但常用List的引用去操作ArrayList 這是一個簡單的面向接口編程的一種,如:List myList = new ArrayList();
2、他們主要是用來保存對象的集合,記得是保存對象的哦,你可別傳個int進去啊
3、要取出它里面保存的對象可以用下標,如:Object aaa = myList.get(0); 這樣我們就把保存在myList里的第一個對象取出來給了 aaa 啦。
ArrayList:
1、List是一個接口,ArrayList是一個實現了List接口的具體類。 他們是父子關系,我們常用的是ArrayList,但常用List的引用去操作ArrayList 這是一個簡單的面向接口編程的一種,如:List myList = new ArrayList();
2、他們主要是用來保存對象的集合,記得是保存對象的哦,你可別傳個int進去啊
3、要取出它里面保存的對象可以用下標,如:Object aaa = myList.get(0); 這樣我們就把保存在myList里的第一個對象取出來給了 aaa 啦。
ArrayList:
ArrayList其實是包裝了一個數組Object[],當實例化一個ArrayList時,一個數組也被實例化,當向ArrayList中添加對象是,數組的大小也相應的改變。這樣就帶來以下有特點:
快速隨即訪問 你可以隨即訪問每個元素而不用考慮性能問題,通過調用get(i)方法來訪問下標為i的數組元素。
向其中添加對象速度慢 當你創建數組是并不能確定其容量,所以當改變這個數組時就必須在內存中做很多事情。
操作其中對象的速度慢 當你要想數組中任意兩個元素中間添加對象時,數組需要移動所有后面的對象。
LinkList:
LinkedList是通過節點直接彼此連接來實現的。每一個節點都包含前一個節點的引用,后一個節點的引用和節點存儲的值。當一個新節點插入時,只需要修改其中保持先后關系的節點的引用即可,當刪除記錄時也一樣。這樣就帶來以下有特點:
操作其中對象的速度快 只需要改變連接,新的節點可以在內存中的任何地方
不能隨即訪問 雖然存在get()方法,但是這個方法是通過遍歷接點來定位的所以速度慢。
一些結論:
當一些被定義好的數據需要放到與數組對應的List中,ArrayList是很好的選擇,因為它可以動態變化,但是不要在整個應用程序中頻繁的使用。
你要很方便的操作其中的數據而不用隨即訪問時;LinkList是很好的選擇。如果你要頻繁隨機訪問建議使用ArrayList。