您的位置:首页 > 其它

2012.6.4 ArrayList集合 List泛型 Hashtable键值对的集合 Dictionary

2012-06-04 19:35 459 查看
对于以上四种

其实就分两种

1 . List泛型

2. Dictionary键值集合

Dictionary 存储模式相当于字典一样 。查找的速度相当之快

当我要查找一个键对应的值时,他会根据键的内存地址来直接查找,而不是遍历所有数据;

也推荐 我们使用这两种,相当于是前面的生级版。好用

#region 练习:计算字符串中每种字符出现的次数(面试题)。 “Welcome to Chinaworld”,不区分大小写,打印“W2”“e 2”“o 3”……提示:Dictionary<char,int>,char的很多静态方法。char.IsLetter()
string dimsg = "Welcome to Chinaworld";
// dimsg = dimsg.Replace(" ", "").Trim();
Dictionary<char, int> di1 = new Dictionary<char, int>();
foreach (char item in dimsg)
{
if (char.IsLetter(item))
{

bool diflag = true;
KeyValuePair<char, int> it = new KeyValuePair<char, int>();

foreach (var item1 in di1)
{
if (item1.Key.ToString().ToLower() == item.ToString().ToLower())
{
it = new KeyValuePair<char, int>(item1.Key, item1.Value + 1);

diflag = false;
break;
}

}
if (diflag)
{
di1.Add(item, 1);
}
else
{

di1[it.Key] = di1[it.Key] + 1;

}
}

}

foreach (var item in di1)
{
Console.WriteLine(item.Key+"|"+item.Value);
}


//先把QQ和网址存到qqhtml中,以下是我手写做测试的

List<List<string>> qqhtml = new List<List<string>>();
//查找网址和对应QQ

List<string> qqhtmlli = new List<string>();
qqhtmlli.Add("61794481");
qqhtmlli.Add("wwwww.fds.fds");
qqhtml.Add(qqhtmlli);

List<string> qqhtmlli1 = new List<string>();
qqhtmlli1.Add("61794481");
qqhtmlli1.Add("wwfdswww.fds.f11ds");
qqhtml.Add(qqhtmlli1);

List<string> qqhtmlli2 = new List<string>();
qqhtmlli2.Add("61794481");
qqhtmlli2.Add("ww.fddsasds.fds");
qqhtml.Add(qqhtmlli2);

List<string> qqhtmlli3 = new List<string>();
qqhtmlli3.Add("61794480");
qqhtmlli3.Add("ww.fdsadsads.fds");
qqhtml.Add(qqhtmlli3);

List<string> qqhtmlli4 = new List<string>();
qqhtmlli4.Add("61794480");
qqhtmlli4.Add("ww.fdeqweass.fds");
qqhtml.Add(qqhtmlli4);

List<string> qqhtmlli5 = new List<string>();
qqhtmlli5.Add("61794482");
qqhtmlli5.Add("ww.fdqwes.fds");
qqhtml.Add(qqhtmlli5);

//这个时候把相同的QQ对应的网址存起来。一个QQ对应的是一个网址数组
Dictionary<string, ArrayList> di0 = new Dictionary<string, ArrayList>();
foreach (var item in qqhtml)
{

if (di0.ContainsKey(item[0]))
{
ArrayList lis = di0[item[0]];
lis.Add (item[1]);
di0[item[0]] = lis;
}
else
{
ArrayList lis = new ArrayList();
lis.Add(item[1]);
di0.Add(item[0], lis);
}
}
//然后读取
foreach (var item in di0)
{
Console.WriteLine();
Console.WriteLine(item.Key);//这里是QQ
Console.WriteLine("---------------以下是网址");
foreach (var ite in item.Value)//这里QQ对应的网址数组
{
Console.WriteLine(ite.ToString());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐