哈希码

yf198557 2009-12-08 10:47:32
刚才粗心把帖子发到非技术了,怪不得没人理。在技术区重发一次:
首先声明我是菜鸟,对哈希码一知半解,欢迎大家拍砖。

我现在有一个字符串数组AL(索引大概几万量级),对于给定字符串,如果使用哈希码直接查找,若数组中有这个字符串,怎样才能得到这个字符串在数组中的索引值?

ArrayList[] AL =new ArrayList[];
String MyString ="damnshit";
string Fline="";
StreamReader Sr=new SteamReader(path);
while(Fline!=null){
Fline=Sr.ReadLine();
AL.Add(Fline);
}

下边我不想用AL.Cantains(MyString),因为时间复杂度高O(count),毕竟需要给定的字符串也可能有几十上百万的,上面的MyString只是其中一个;
我现在想用最快的方法得到MyString在AL中的索引,希望高手指点,给个思路就行。
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yf198557 2009-12-08
  • 打赏
  • 举报
回复
恩,谢谢楼上意见,我试试Dictionary
我太菜了
INTTNY 2009-12-08
  • 打赏
  • 举报
回复
之所以不能用你所说的哈希码进行索引的寻找是因为你添加入这个List里边时的索引与值的哈希码计算得出的索引没有联系
INTTNY 2009-12-08
  • 打赏
  • 举报
回复
你用ArrayList似乎不能这么做吧,用Dictionary<string,string>吧,只是Key不能相同。这个的索引时间复杂度在O(1)~O(log n)之间

111,120

社区成员

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

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

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