首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

大伙来谈谈数据类型转换的效率

2013-01-02 
大家来谈谈数据类型转换的效率我随机生成N个0-65535的整数 转换成Strling用TStringList载入然后我要遍历这

大家来谈谈数据类型转换的效率
我随机生成N个0-65535的整数 转换成Strling
用TStringList载入
然后我要遍历
这个列表是否存在某个数
需要将需要查找的列表中的某个位置的值再转换成整数型
这样就要历经一次
INTTOSTR
和一次
STRTOINT
这样的话。会不会造成很大的效率损失
如果用TintegerList呢
但是好像没有TintegerList这个类!
[解决办法]
如果你对效率非常看重,请使用数组或申请数据块自定义类型及方法.
越是简单粗暴,效果越好;
反而很多看上去似乎技术含量很高的,中看不中用.
[解决办法]

引用:
引用:检查某个东东是否存在没有比哈希表更快地了.
老版本D的Inifiles但愿有个哈希表实现.新版D则自带了字典类,也就是哈希表
我只是一串数字列表而已。。没必要再高哈希表了吧......

 
TDictionary是现成的东西,比你用tstringlist还方便,
[解决办法]
0..65535的话开一个布尔数组最快。少量任意整数可以用list。大量任意整数那就老老实实hash吧。
[解决办法]
引用:
0..65535的话开一个布尔数组最快。少量任意整数可以用list。大量任意整数那就老老实实hash吧。


支持,对这种0-$FFFF存在与否的查询,用Boolean数组是最快的,生成随机数的时候,把对应的位置设置成True,查询的时候只需要检查对应的值是否是True就知道是否有了
  bList : array [0..$FFFF] of Boolean;
//初始化的时候
  FillChar(bList,SizeOf(bList) , 0); //初始化
  for i:=1 to ... do begin //生成多少个数
    n := Random($10000);  //确保范围在0-65535之内
    bList[n] := True;
  end;
查询的时候
Function ExistsValue(wValue : WORD) : Boolean;
begin
  Result := bList[wValue];
end;

热点排行