集合( Stack / Queue / Hashtable 都没有索引)

    /*   // 集合     Stack         没有索引!"好比是死胡同"

            Stack s=new Stack ();       //特殊集合  堆!先进后出,后进先出

               s.Push("1");                //赋值内容  要用     “”  

           s.Push("2");

            s.Push("3");

            s.Push("4");

            s.Push("5");

           // Console.WriteLine(s.[2]);      无法用索引[]

            foreach (string a in s)          //根据集合的构造,依次获取数据!//要想读取集合,要用foreach()

                { Console.WriteLine(a); }

            Stack fuzhi = (Stack)s.Clone();  //复制Stack集合s

            string tanchu = s.Pop().ToString();   //弹出并移除,集合里最后一个添加的字符。注意书写()格式!

          string chakan= s.Peek().ToString();   //读取但是不移除,最后一个添加的元素,!

         //   s.Clear();                       //表示清空集合! 

                Console.WriteLine(s.Count);     //返回int值,获取集合中元素   个数

         //   Console.WriteLine(s[1]);             //此时无法读取集合中的元素。Stack没有索引

            Console.ReadLine();*/     

      

       /* //   队列    queue   ,没有索引       “排队付账

            Queue q = new Queue();  //只能先进先出,排队!

            q.Enqueue(3);

            q.Enqueue(4);

            q.Enqueue(8);

            q.Enqueue(2);

         // int b=q[2];                      queue   没有索引,不能用[]取集合中的元素!

            foreach (int a in q)

            { Console.WriteLine(a); }  

               int zhi = int.Parse(q.Peek().ToString());         //只读取排队的第一个元素,不移除!

               Console.WriteLine(zhi);

            bool c = q.Contains(8);                           // 判断Queue集合中  是否  包含元素  8

            Console.WriteLine(c);                             //要有输出,才能显示.    Ture   or   Flase

           int yichu = int.Parse(q.Dequeue ().ToString());    //移除排队的第一个元素 "delect queue"

           Console.WriteLine(yichu);                              //此时,这里输出是  3

           Console.WriteLine("下面是新queue集合   h  : ");

           Queue h = q;

           foreach (int d in h)

           { Console.Write(d); }                              //此时已经移除了q中第一个元素    3 

              Console.ReadLine();   */

     

         // Hashtable          哈希表包含 keys 和 values。没有索引!

          Hashtable h=new Hashtable ();    //没有索引不能用 [] 引用,前面数字可以随便写

          h.Add(0,"王超");//向哈希表里添加元素!            h.Add(1,"范磊");                        h.Add(2,"王濛");           h.Add(3,"王雷雷");           h.Add(4,"田园青");           h.Add(5,"刘春丽");           h.Add(6,"孙琪");           h.Add(7,"孟享祥");           h.Add(8,"朱晓璞");

          IDictionaryEnumerator ide = h.GetEnumerator();

          while (ide.MoveNext())

           {

               Console.WriteLine(ide.Key+"  "+ide.Value);    //这样输出‘ 0    王超 ’,依次输出。           

          }

 

          ArrayList aa = new ArrayList();

          foreach (int  a in h.Keys)    //注意读取表达格式。h.Keys / Values

          {

              Console.WriteLine("h集合中的:" + a);      //分开读取,好比两个  Stack  集合!先入后出!

           aa.Add(a );

          }

          foreach (int f in aa)

          {    Console.WriteLine("aa集合中的:" + f);     }  //这里是打印ArrayList集合  aa    

      

          ArrayList aaa = new ArrayList();

          foreach (string b in h.Values )

          {

              Console.WriteLine("h集合中的:"+b);

              aaa.Add(b);                        //输的内容是和Hashtable输出values内容一直

          }

          foreach (string  r in aaa)          //foreach列举时,一定要保证元素类型一致!string

          {               Console.WriteLine("aaa集合中的:" + r);           }

          h.Remove(4);                         //移除。   按照()内的keys值移除。这里移除的是(4,田园青)!

         Console.WriteLine(h.Contains(66));    //    判断是否包含66的 keys 键 ,返回bool值。 

          int geshu = h.Count;                 //Hashtable   元素个数

          Console.WriteLine("元素个数:"+geshu);

        // h.Clear();                              //清空Hashtable  

          Hashtable hh = h;

          foreach (int f in hh.Keys)         //注意读取表达格式。    h.Keys / Values

          {          Console.WriteLine(f);  //分开读取,好比两个  Stack  集合!先入后出!           }

          foreach (string j in hh.Values)

          {               Console.WriteLine(j);           }  

                 Console.ReadLine();

转载于:https://www.cnblogs.com/huaze/p/4045578.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET 3.5集合是一个用于处理和管理数据的强大框架,它包含了各种各样的数据结构和算法。通过使用这些集合,开发者可以轻松地对数据进行添加、删除、查找和排序等操作。 .NET 3.5集合框架提供了多种类型的集合,每种集合都有自己的特点和适用场景。其中一些常见的集合类型包括: 1. 列表(List):列表是一个有序的集合,可以通过索引访问元素。列表允许元素重复,并且可以动态改变大小。 2. 队列(Queue):队列是一个先进先出(FIFO)的集合,元素按照添加的顺序排列,并且从队列的一端添加元素,从另一端移除元素。 3. 栈(Stack):栈是一个后进先出(LIFO)的集合,元素按照添加的顺序排列,并且只能从栈的顶端添加和移除元素。 4. 集合(Set):集合是一个唯一元素的无序集合,它不允许元素重复,并且可以进行集合运算如交集、并集和差集。 5. 字典(Dictionary):字典是一个键值对的集合,每个元素都包含一个键和与之相关联的值。字典提供了快速的键值查找功能。 除了以上常见的集合类型,.NET 3.5还提供了其他集合类型,如哈希表(Hashtable)、排序集合(SortedSet)和带有观察者模式的集合(ObservableCollection)等。 .NET 3.5集合框架的使用非常方便,开发者可以通过简单的语法来创建、访问和操作集合。通过选择合适的集合类型,开发者可以提高代码的性能和可读性,同时减少错误的发生。 总结来说,.NET 3.5集合框架是一个强大的工具,它提供了多种集合类型和丰富的功能,帮助开发者更好地处理和管理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值