泛型與集合哪個更占資源?

wwwiii520 2009-11-12 11:17:02
string s1 = "AAAAA";
string s2 = "BBBBB";
string s3 = "CCCCC";
string s4 = "DDDDD";
string s5 = "EEEEE";
string line="",tline="";
System.Collections.ArrayList slist = new System.Collections.ArrayList();
List<string> tlist = new List<string>();
slist.Add(s1);
slist.Add(s2);
slist.Add(s3);
slist.Add(s4);
slist.Add(s5);

tlist.Add(s1);
tlist.Add(s2);
tlist.Add(s3);
tlist.Add(s4);
tlist.Add(s5);
foreach (string s in slist)
line += s;
foreach (string s in tlist)
tline += s;

Console.WriteLine(line);
Console.WriteLine(tline);

//ArrayList 要實行裝箱和拆箱,
...全文
135 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzdiablo 2009-11-12
  • 打赏
  • 举报
回复
泛型在效率上比集合高。但在内存占用上略差于集合。
泛型内存占用上只是比集合多了一点点。只是多了个对象的成员堆栈而已。

.net中的List<T>在存储数据时用的就是ArrayList,但是MS做了点优化,留了一个T的对象副本。也就是一个对象成员堆栈而已。当使用时则直接取出保留的副本。所以速度快了。

java中的List<T>完全是个假象。只是在开发时限制了类型,实际执行效率完全没有优势。
mohugomohu 2009-11-12
  • 打赏
  • 举报
回复
泛型的优点比令一个多很多
eyuannet 2009-11-12
  • 打赏
  • 举报
回复
内存都一样,因为存储的数据一样
CPU 泛型少一点,因为 步骤少
wwwiii520 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linux7985 的回复:]
不知道你说的,占用资源是指什么资源,是空间吗?还是时间,没说清楚
[/Quote]
占cpu占內存咯!
klose1118 2009-11-12
  • 打赏
  • 举报
回复
用了泛型,可以规定你集合的类型,避免装箱拆箱
泛型当然比集合好
烈火蜓蜻 2009-11-12
  • 打赏
  • 举报
回复
不知道你说的,占用资源是指什么资源,是空间吗?还是时间,没说清楚
wwwiii520 2009-11-12
  • 打赏
  • 举报
回复
還是有點不解之間內部的問題.
人工智能算法 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 wwwiii520 的回复:]


//ArrayList 要實行裝箱和拆箱,
[/Quote]

既然知道 那你还问什么 -_-! @@!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧