作者cole945 (躂躂..)
看板C_Sharp
标题Re: [问题] 使用 List会比较有效率吗?
时间Sun May 23 00:08:51 2010
※ 引述《proach (pazroach)》之铭言:
: 举个很简单的例子好了
: 像我这种骨子里是使用 C的人,习惯宣告说
: int [] Numbers = new int [5];
: 之後的程式码就是 C了。
: 可是我看很多范例程式都使用 List,所以,如果我把上述的方法改写成
: List <int> Numbers = new List <int> ();
: Numbers.Add(0);....
: 之後以一般的方法使用 Numbers.
: 除了 List有很多 methods可以使用之外,如果单纯以程式执行效率来说,
: 哪一种方法比较好呢?
如果要比 T[], List<T>, ArrayList 的话
int[] 的效能应该是""略""小於 List<T> (後面会说 "略" 在哪里)
而 ArrayList 等於是 List<bject>, 两个一样...
所以要用哪一个, 基本上看你自己的需求
再讲内部一点点..
在 C# 的 T[] 其实就是包装过的 System.Arrary
而 List<T> 的话, 大略就是
class List<T>
{
T[] items;
public T this[int index]
{
get {
if( index<_size)
throw OutOfRange;
return items[index];
}
set {
if( index<_size)
throw OutOfRange;
items[index] = value;
}
}
}
事实上, 他比较像 c++中的 vector<T>
本质是 fixed size 的 array, 存取快O(1)
但他可以一直 Add 东西进去越变越大..
如果超过 size 的话, 会重新 alloc 一块更大的 (一般来说用原本的2倍)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.42.112
1F:→ p52644999:List<object> 打错是吗 05/23 02:15