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

大家来谈谈数据类型转换的效率
我随机生成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;