关于Dictionary 泛型类的问题

yeerh 2006-08-28 11:55:26
Dictionary 泛型类的默认的加载因子是多少啊?
是固定的值还是自动变化的(HashTable中初始化时是可以设加载因子的).

还有..Dictionary 泛型类在初始化时如果把大小设为32....
系统内部会不会把大小改为37(比32大一点的素数)呢?
...全文
304 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
syeerzy 2006-09-04
  • 打赏
  • 举报
回复
用foreach迭代时是什么顺序是你不用也不该去理的问题,或者说在你需要知道或需要迭代顺序的时候就不要用foreach. 毕竟MoveNext的实现不是你控制的.
greennetboy 2006-09-04
  • 打赏
  • 举报
回复
具体分析:
http://www.cnblogs.com/jillzhang/archive/2006/08/19/481442.html
greennetboy 2006-09-04
  • 打赏
  • 举报
回复
系统内部会不会把大小改为37(比32大一点的素数)呢?
可以
iflang 2006-09-04
  • 打赏
  • 举报
回复
楼上应该是正确的
jedliu 2006-09-04
  • 打赏
  • 举报
回复
哦,错了,默认的加载因子好象是0.75,是,应该比32大点!
jedliu 2006-09-04
  • 打赏
  • 举报
回复
自动变化的

应该比32小。
加载因子越小,则平均查找速度就越快,但内存消耗就越大。默认的容量是16,加载因子是1..加载因子的取值范围是0.1-1之间。
yeerh 2006-08-28
  • 打赏
  • 举报
回复
还有用foreach时迭代时.
Hashtable输入的顺序是不确定..
而用Dictionary 确是先进先出...
static void Main()
{
Dictionary<string, int> dir = new Dictionary<string, int>(100);
for (int i = 0; i < 100; i++)
{
dir.Add(i.ToString(), i);
}
foreach (string dirs in dir.Keys)
{
Console.WriteLine(dirs);
}
Hashtable ht = new Hashtable(100);
for (int i = 0; i < 100; i++)
{
ht.Add(i.ToString(), i);
}
foreach (string dirs in ht.Keys)
{
Console.WriteLine(dirs);
}
}
yeerh 2006-08-28
  • 打赏
  • 举报
回复
顶起来.
哪位大侠知道啊...

110,536

社区成员

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

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

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