当前位置:   article > 正文

delphi 比pos效率高的stringlsit模糊查找算法_delphi stringlist 速度

delphi stringlist 速度

背景

1000万数据的stringlist ,我想模糊查询出  包含字符串  ‘abc’ 的所有数据,

一般的算法就是一个循环遍历,然后pos每行是否含 ‘abc’

但是循环的速度真的有点慢。

后来对比了几个pos的效率,原来可以快2倍。

  1. procedure TForm1.Button2Click(Sender: TObject);
  2. var
  3. ls: TOpenStringList;
  4. i,n: integer;
  5. t: int64;
  6. ls1: TStringList;
  7. begin
  8. ls := TOpenStringList.Create;
  9. ls1 := TStringList.Create;
  10. ///添加1000///
  11. t := GetTickCount;
  12. for i:=0 to 10000000 do
  13. begin
  14. ls.Add('a' + IntToStr(i));
  15. end;
  16. t := GetTickCount - t;
  17. Memo1.Lines.Add('TOpenStringList:add:'+FloatToStr(t / 1000));
  18. 添加1000//
  19. t := GetTickCount;
  20. for i:=0 to 10000000 do
  21. begin
  22. ls1.Add('a' + IntToStr(i));
  23. end;
  24. t := GetTickCount - t;
  25. Memo1.Lines.Add('TStringList:add:' + FloatToStr(t / 1000));
  26. //查找测试//
  27. t := GetTickCount;
  28. ls.Find('a667788',i);
  29. t := GetTickCount - t;
  30. Memo1.Lines.Add('TOpen
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/289698
推荐阅读
相关标签
  

闽ICP备14008679号