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

对于以上四种

其实就分两种

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());
                }
            }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值