热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Chapter5.集合(ArrayList、Stack、queue、哈希表)

//Arr
 //ArrayList集合
            //定义:
            ArrayList al = new ArrayList();
            //添加元素:追加到集合的最后
            al.Add(1);
            al.Add(2);
            al.Add(3);
            al.Add(4);
            al.Add(5);
            Console.WriteLine("第一个位置的元素为:"+al[0]);
            //插入元素
            al.Insert(0,9); //在索引0的位置插入9,后边数据依次靠后
            Console.WriteLine("插入9后,第一个位置的元素为:"+al[0]);
            //移除元素
            al.Remove(4); //移除第一次出现的这个元素
            Console.WriteLine("移除元素4后的集合:");
            foreach(object a in al)
            {
                Console.WriteLine(a);
            }
            al.RemoveAt(4); //移除这个索引值的元素
            Console.WriteLine("移除索引值为4后的集合:");
            foreach (object a in al)
            {
                Console.WriteLine(a);
            }
            //获取集合元素个数
            Console.WriteLine("集合中元素个数为:"+al.Count);
            //判断是否有括号内的数据,返回的是bool值(True或者False)
            bool b = al.Contains(3);
            Console.WriteLine("集合内是否有元素3:"+b);
            //自动进行排序,升序
            al.Sort();
            Console.WriteLine("升序排列后的集合:");
            foreach (object a in al)
            {
                Console.WriteLine(a);
            }
            //将集合翻转,一般是进行Sort排序之后翻转,变成从大到小
            al.Reverse();
            Console.WriteLine("翻转后的集合:");
            foreach (object a in al)
            {
                Console.WriteLine(a);
            }
            //克隆一个一模一样的集合
            ArrayList aal = new ArrayList();
            aal = (ArrayList)al.Clone();
            Console.WriteLine("克隆后的集合:");
            foreach (object a in aal)
            {
                Console.WriteLine(a);
            }
            //将集合清空
            al.Clear();
            Console.ReadLine();

技术分享

 // Stack集合:栈集合,先进后出,逐个取值逐个赋值
            // 定义方式:
            Stack aa = new Stack();
            // .push:向集合内推送元素
            aa.Push(1);
            aa.Push(2);
            aa.Push(3);
            aa.Push(4);
            aa.Push(5);
            // .count:获取集合内元素个数
            Console.WriteLine("集合内元素个数:"+aa.Count);
            // 弹出元素,集合中便没有这个元素
            Console.WriteLine("弹出元素,并移除:"+aa.Pop());
            // 拿出看看,并不进行移除
            Console.WriteLine("弹出元素,不移除:"+aa.Peek());
            // 遍历集合
            Console.WriteLine("遍历集合:");
            foreach (object aaa in aa)
            {
                Console.WriteLine(aaa);
            }
            //克隆
            Stack bb = new Stack();
            bb =(Stack)aa.Clone();
            Console.WriteLine("克隆后的集合:");
            foreach(object aaa in bb)
            {
                Console.WriteLine(aaa); 
            }
            //清空集合
            aa.Clear();
            Console.ReadLine(); 

技术分享

// Queue队列集合:先进先出,逐个赋值,逐个取值
            //定义方式
            Queue que=new Queue();
            //添加数据
            que.Enqueue(1);
            que.Enqueue(2);
            que.Enqueue(3);
            que.Enqueue(4);
            que.Enqueue(5);
            que.Enqueue(6);
            //移除一个数据
            Console.WriteLine("移除第一个数据:"+que.Dequeue());
            //拿出数据
            Console.WriteLine("只拿出第一个数据不移除:"+que.Peek());
            //遍历集合
            Console.WriteLine("遍历集合:");
            foreach(object a in que)
            {
                Console.WriteLine(a);
            }
            Console.ReadLine();

技术分享

//哈希集合:先进后出,逐个赋值,一起取值
            Hashtable ht = new Hashtable();
            ht.Add(0, "张三");
            ht.Add(1, "李四");
            ht.Add(2, "王五");
            ht.Add(3, "赵六");
            ht.Add(4, "冯七");
            //移除数据
            ht.Remove(2);
            //判断是否包含
            Console.WriteLine("是否包含2:"+ht.Contains(2));
            //遍历集合:倒序打印,类似stack集合
            Console.WriteLine("遍历集合,key值:");
            foreach (int i in ht.Keys) 
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("遍历集合,value值:");
            foreach(string s in ht.Values)
            {
                Console.WriteLine(s);
            }
            Console.ReadLine();


            //利用枚举类型读取集合中的所有数据,像表格一样排列
            IDictionaryEnumerator id = ht.GetEnumerator();
            //获取到里边每个key值value值
            //循环打印:移动到下一个key值,value值
            Console.WriteLine("遍历集合,枚举:");
            while (id.MoveNext())
            {
                Console.WriteLine(id.Key+"\t"+id.Value);
            }
            Console.ReadLine();  

技术分享

Chapter 5. 集合---(ArrayList、Stack、queue、哈希表)


推荐阅读
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 两个条件,组合控制#if($query_string~*modviewthread&t(&extra(.*)))?$)#{#set$itid$1;#rewrite^ ... [详细]
  • 本文详细介绍了DMA控制器如何通过映射表处理来自外设的请求,包括映射表的设计和实现方法。 ... [详细]
  • 解决Win10下MySQL连接问题:Navicat 2003无法连接到本地MySQL服务器(10061)
    本文介绍如何在Windows 10环境下解决Navicat 2003无法连接到本地MySQL服务器的问题,包括启动MySQL服务和检查配置文件的方法。 ... [详细]
  • 本文详细介绍了如何利用Duilib界面库开发窗体动画效果,包括基本思路和技术细节。这些方法不仅适用于Duilib,还可以扩展到其他类似的界面开发工具。 ... [详细]
  • Spark中使用map或flatMap将DataSet[A]转换为DataSet[B]时Schema变为Binary的问题及解决方案
    本文探讨了在使用Spark的map或flatMap算子将一个数据集转换为另一个数据集时,遇到的Schema变为Binary的问题,并提供了详细的解决方案。 ... [详细]
  • 解决 Windows Server 2016 网络连接问题
    本文详细介绍了如何解决 Windows Server 2016 在使用无线网络 (WLAN) 和有线网络 (以太网) 时遇到的连接问题。包括添加必要的功能和安装正确的驱动程序。 ... [详细]
  • 使用Jsoup解析并遍历HTML文档时,该库能够高效地生成一个清晰、规范的解析树,即使源HTML文档存在格式问题。Jsoup具备强大的容错能力,能够处理多种异常情况,如未闭合的标签等,确保解析结果的准确性和完整性。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
author-avatar
绿香源酥脆冬枣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有