---
# System prepended metadata

title: 陣列.ArrayList.List差別

---

# 陣列.ArrayList.List差別
 ## 陣列:
 1.陣列在記憶體中是連續儲存的,賦值/修改元素很簡單
 2.陣列資料中穿插資料很麻煩
 3.必須先指明陣列長度(浪費記憶體)
 EX:
 string[]=new string[3];
 
 //賦值
 s[0]="a";
 s[1]="b";
 s[2]="c";
 //修改
 s[1]="b1";
 ## ArrayList:
 1.按照其中的儲存的資料來動態擴充與收縮的
 2.不需要指定他的長度
 EX:
 Arraylist = new ArrayList();
 
 //新增資料
 list.Add("abc");
 list.Add("123");
 //修改資料
 list[2]= 345;
 //移除資料
 list.RemoveAt(0); 刪除陣列索引中第0的數
 //插入資料
 list.Insert(0,"Hello World");
 ### ArrayList會把所有插入其中的資料都當作為object型別來處理
 
 ## 泛型List
 1.宣告list時,同時要宣告list集合內資料的物件型別
 EX:
 List<int> list= new List<int>();

//新增資料
list.Add();
//修改資料
list[0] =345;
//移除資料
list.RemoveAt(0);