ArrayList与数组
ArrayList作用:
眾所周知,一旦確定了數組的大小,改變它就不容易了。不過ArrayList類就可以解決動態更改數組大小的問題。ArrayList使用起來有點像數組,但是在添加和刪除元素時,具有自動調節數組容量的功能,而不需為此編寫任何代碼。
ArrayList管理著對象引用的一個內部數組。最終,數組的全部空間有可能被用盡。這就顯現出ArrayList的操作的優勢所在:如果調用add方法但是內部數組已經滿了,ArrayList就將自動地創建一個更大的數組,并將所有的對象從較小的數組中拷貝到較大的數組中。
ArrayList的容量與數組的大小的區別:
如果為數組分配100元素的存儲空間,數組就有100個空位置可以使用,但是容量是100的ArrayList只是擁有保存100個元素的潛力(實際上,重新分配空間的話,將會超過100),但是在最初,甚至完成初始化構造之后,ArrayList根本就不含有任何元素。
eg:
package com.myself.test;import java.util.ArrayList;public class Mytest {public static void main(String[] args) {ArrayList<String> array = new ArrayList(100);System.out.println("ArrayList的容量:"+array.size());String[] s = new String[100];System.out.println("數組的長度:"+s.length);for(int i=0;i<150;i++){//當向ArrayList中添加大于ArrayList初始化定義的容量的元素個數array.add("zhangyaohui");}System.out.println("ArrayList的容量:"+array.size());for(int i=0;i<150;i++){//當向數組中添加大于數組初始化定義的大小的元素個數s[i] = "zhangyaohui";}}} 結果:
ArrayList的方法:
1.構造方法:
ArrayList<T> : 構造一個空數組列表
ArrayList<T>(int initialCapacity): 用指定容量構造一個空數組列表 ? ? ? ? 參數: initialCapacity 數組列表的最初容量
2.常用方法:
size(): ?返回存儲在數組列表中的當前元素數量。
ensureCapacity(int capacity): ?確保數組列表在不重新分配存儲空間的情況下就能夠保存給定數量的元素。 ? ?參數:capacity ?需要的存儲容量
trimToSize(): ? 將數組列表的存儲容量消減到當前尺寸。
set(int index,T obj): ? 設置數組列表指定位置的元素值,這個操作將覆蓋這個位置的原有內容。
get(int index): ? 獲得指定位置的元素值。
add(T obj): ?在數組列表的尾端添加一個元素。
add(int index,T obj): 向后移動元素,以便插入元素。
remove(int index): 刪除一個元素,并將后面的元素向前移動。被刪除的元素又返回值返回。
ArrayList的缺點:
ArrayList自動擴展容量的便利增加了訪問元素語法的復雜程度。
既可以靈活的擴展數組,又可以方便地訪問數組元素的方法:(實際上就是通過ArrayList與數組之間的轉換實現的)
package com.myself.test;import java.util.ArrayList;public class Mytest {public static void main(String[] args) {ArrayList<String> array = new ArrayList();for(int i=0;i<6;i++){//當向ArrayList中添加大于ArrayList初始化定義的容量的元素個數array.add("zhangyaohui");}String[] s = new String[array.size()];//初始化一個跟ArrayList的容量大小一致的數組array.toArray(s);//將ArrayList轉換成數組for(String a:s){//遍歷數組System.out.println(a);}}} 結果:
注意:
對數組實施插入和刪除元素的從操作其效率比較低。對于小型數組來說,這一點不必擔心。但如果數組存儲的元素數比較多,又經常需要在中間位置插入、刪除元素,就應該考慮使用鏈表了。
總結
以上是生活随笔為你收集整理的ArrayList与数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DWR的使用以及DWR中工具JS文件的使
- 下一篇: Java中return的用法