集合及特殊字符

壹.

1.System Collections命名空间包含接口和类,这些接口和类定义各种对象的集合;

2.集合与数组的区别;数组是连续的,同一类型的数据的一块区域,而集合是可以不连续的,多种数据类型的;

3.Arraylist实现了与  Ilist    ICollection   IEnumberable 接口

4.Arraylist是具体类,array是抽象类;

5.数组必须在实例化时指定元素数量,该数量一旦确定就不可更改,而ArrayList 当实例化一个arraylist 实例时可以不指定几何元素数(有默认的初始容量),当然你可以指定初始容量;

6.获取数组的元素数时使用length属性,而获取arraylist集合的元素数时使用Count属性;

5.数组可以有多维,而arraylist只能是一维。

贰:例题:

1.手机号抽奖

 1             ArrayList TL = new ArrayList();--------与array区别  可以不指定元素数
 2             for (; ; )
 3             {
 4                 Console.WriteLine("输入手机号");
 5                 string a = Console.ReadLine();
 6                 if (a == "完成")
 7                 {
 8                     break;
 9                 }
10                 TL.Add(a);                         //每个索引对应 一个字符串   把字符串放在                                             数组里面!
11             }
12
13             Console.WriteLine("回车键进行抽奖");
14             Console.ReadLine();
15             Console.Clear();
16
17
18             Random r = new Random();
19
20             for (int j = 0; j < 3000; j += 100)
21             {
22                 int c = r.Next(TL.Count);
23
24                 Console.Clear();
25                 Console.WriteLine(TL[c]);
26
27                 System.Threading.Thread.Sleep(100); // ----------每隔100毫秒暂停一次
28             }

例题1

2.按着语文成绩排序

            Console.WriteLine("输入班级人数");
            int n = int.Parse(Console.ReadLine());

            ArrayList q = new ArrayList();
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("输入第{0}个人的姓名:", i + 1);
                q.Add(Console.ReadLine());
                Console.WriteLine("输入第{0}个人的语文成绩:", i + 1);
                q.Add(Console.ReadLine());
                Console.WriteLine("输入第{0}个人的数学成绩:", i + 1);
                q.Add(Console.ReadLine());
                Console.WriteLine("输入第{0}个人的英语成绩:", i + 1);
                q.Add(Console.ReadLine());
                Console.WriteLine();
            }
            Console.Clear();
            Console.WriteLine("按照语文成绩进行排序");
            Console.ReadLine();
            for (int i = 1; i < 4 * n - 3; i += 4)---------------------集合一维
            {
                for (int j = i + 4; j < 4 * n; j += 4)
                {
                    if (int.Parse(q[i].ToString()) < int.Parse(q[j].ToString()))//object转化为字符串在转化为其他(因为添加的字符串 添加后默认object)
                    {
                        object a;
                        a = q[i - 1];
                        q[i - 1] = q[j - 1];
                        q[j - 1] = a;

                        object b;
                        b = q[i + 1];
                        q[i + 1] = q[j + 1];
                        q[j + 1] = b;

                        object c;
                        c = q[i + 2];
                        q[i + 2] = q[j + 2];
                        q[j + 2] = c;

                    }

                }
            }

            foreach (object aa in q)
            {
                Console.WriteLine(aa);
            }

            Console.ReadLine();
              

用集合的方法(集合只能是一维的)

3.Arraylist小知识点

            实例化    初始化
            ArrayList al = new ArrayList();-------不需指明元素容量
            //add方法才是真的添加
            al.Add(4);
            al.Add(6);
            al.Add(19);
            al.Add(4);
            al.Add(3);

            //在某个索引号上插入某个元素
            al.Insert(2,"Hello");
            个数
            Console.WriteLine(al.Count);
            al[0]这种赋值方式,仅仅适用于修改
            al[0] = 3;

            清空集合
            al.Clear();

            克隆集合
            ArrayList al1 = (ArrayList)al.Clone();

            判断是否包含某个元素
            bool a = al.Contains(3);
            Console.WriteLine(a);

            获取第一次出现该元素的索引号
            Console.WriteLine(al.IndexOf(4));

            获取最后一次出现该元素的索引号
            Console.WriteLine(al.LastIndexOf(4));

            移除第一个匹配元素
            al.Remove(4);

            移除某个索引位置上的元素
            al.RemoveAt(4);

            Console.WriteLine(al[0]);
            数组的定义:数据类型    总长度

            遍历集合
            foreach(int aa in al)
            {
                Console.WriteLine(aa);
            }
            Console.WriteLine("--------------------------------------------");
            //排序   升序
            al.Sort();
            //遍历集合
            foreach (int aa in al)
            {
                Console.WriteLine(aa);
            }
            Console.WriteLine("--------------------------------------------");
            //排为降序
            //翻转集合
            al.Reverse();
            //遍历集合
            foreach (int aa in al)
            {
                Console.WriteLine(aa);
            }

            在有不同数据类型的时候需要遍历集合
            foreach(object aa in al)
            {
                Console.WriteLine(aa);
            }

            object         所有数据类型的基类
            int a = 5;
            object aa = a;
            aa = "string类型";
            aa = true;
            aa = DateTime.Parse("2008/8/8");
            aa = al;

            System.Threading.Thread.Sleep(3000);

小知识点

4.特殊集合

       1.     Stack   干草堆集合   栈集合
            一个一个赋值   一个一个取值
            先进后出
            实例化   初始化
            Stack st = new Stack();
            //添加元素
            st.Push(2);
            st.Push(6);
            st.Push(9);
            st.Push(5);
            st.Push(1);
            //个数
            //Console.WriteLine(st.Count);

            //只要使用一次pop方法,就会从最后一个元素开始排除  弹出
            //Console.WriteLine(st.Pop());
            //只想查看不弹出
            //Console.WriteLine(st.Peek());

            //遍历集合
            foreach(int aa in st)
            {
                Console.WriteLine(aa);
            }

            //Console.WriteLine(st.Count);

            queue队列集合
            先进先出
            实例化   初始化
            Queue que = new Queue();
            //添加元素
            que.Enqueue(5);
            que.Enqueue(2);
            que.Enqueue(9);
            que.Enqueue(8);
            que.Enqueue(1);
            //移除一个元素   从头开始
            que.Dequeue();

            //个数
            //Console.WriteLine(que.Count);

            //遍历集合
            foreach(int aa in que)
            {
                Console.WriteLine(aa);
            }

            HashTable   哈希表集合
            先进后出   一个一个赋值,但是只能一起取值
            实例化   初始化
            Hashtable ht = new Hashtable();
            添加元素
            ht.Add(1, "张三");
            ht.Add(2, "李四");
            ht.Add(3, "王五");
            ht.Add(4, "赵六");
            ht.Add(5, "冯七");
            ht.Add(6, "钱八");

            读取
            foreach (object aa in ht.Keys)//单纯的存储key的集合
            {
                Console.WriteLine(aa);
            }
            foreach (string bb in ht.Values)
            {
                Console.WriteLine(bb);
            }

            使用枚举类型进行读取,排列成表格
            IDictionaryEnumerator ide = ht.GetEnumerator();
            while(ide.MoveNext())
            {
                Console.WriteLine(ide.Key+"\t"+ide.Value);
            }

特殊集合知识点

时间: 2024-10-06 01:08:53

集合及特殊字符的相关文章

[原创]java WEB学习笔记98:Spring学习---Spring Bean配置及相关细节:如何在配置bean,Spring容器(BeanFactory,ApplicationContext),如何获取bean,属性赋值(属性注入,构造器注入),配置bean细节(字面值,包含特殊字符,引用bean,null值,集合属性list map propert),util 和p 命名空间

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

菜鸟的成长记录--linux 通配符和特殊字符集合的使用

通配符 当需要用命令查询所需要的结果时,用户不必全部查出一个一个找,可以使用Shell通配符.Shell命令的通配符含义如下表 符号 含义 实例 * 任意长度的任意字符 a*b,匹配如a3b.acb.aabc.a/b.a123,/b. ? 匹配任意单字符 a?b,匹配如a1b.acb.a,b [ ] 匹配指定范围内的任意字符 a[xyz]b,匹配如axb.ayb.azb [ - ] 匹配任意一个字符范围 a[a-z]b,匹配如ayb.acb.adb.aub [^...] 除了指定的字符,均可匹配

干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!

1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2unix # windows文本转linux文本 unix2dos # linux文本转windows文本 enca filename # 查看编码 安装 yum install -y enca md5sum # 查看md5值 ln 源文件 目标文件 # 硬链接 ln -s 源文件 目标文件 # 符号

Java图书管理系统(用Java常用集合实现)

图书管理系统 一.需求说明 1.功能:登录,注册,忘记密码,管理员管理,图书管理. 2.管理员管理:管理员的增删改查. 3.图书管理:图书的增删改查. 4.管理员属性包括:id,姓名,性别,年龄,家庭住址,手机号码,登录名称,登录密码,状态. 5.图书属性包括:id,图书名称,作者,单价,出版社,出版日期,类别. 6.技术:通过用集合来模拟数据库实现该系统,建议采用List集合实现,集合模拟数据库只是一个数据的临时保存. 二.功能说明 1.注册功能 描述:注册需要用户输入所有的必须的用户信息.

$-------JSP中表达式语言的$特殊字符的作用

JSP 中EL表达式用法详解 EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user.sex} 所有EL都是以${为起始.以}为结尾的.上述EL范例的意思是:从Session的范围中,取得 用户的性别.假若依照之前JSP Scriptlet的写法如下: User user =(User)session.getAttribute("user"); String sex =u

01Python内置函数_集合操作类

basestring basestring() 说明:basestring是str和unicode的超类(父类),也是抽象类, 因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例, isinstance(obj, basestring) 等价于isinstance(obj, (str, unicode)): 版本:python2.3版本以后引入该函数,兼容python2.3以后python2各版本. 注意:python3中舍弃了该函数,所以该函数不能在pytho

PHP字符串 集合的相关函数

PHP第三次字符串处理函数<?php/** * Created by PhpStorm. * User: yangguojun * Date: 16/3/16 * Time: 下午7:26 *///1.去掉空格及特殊字符 trim函数 //$str='asdf ghjkl\t'; //echo($str);//trim 去掉两端空格 //echo(trim($str));//echo('test'); //移除两端指定的字符 as 和 \t//echo(trim($str,'as\t')); /

jquery 操作对象和集合

1.$.trim(str)删除传入的字符串前后的空格.换页.制表.换行.回车等特殊字符.原始字符串str的值不会改变,返回改变后的新值. 2.$.each(container,callback)迭代器,对container集合进行循环操作.callback是每迭代集合体的一个对象需要执行的函数,可以存在两个参数:var arr=new Array("one","two","three");$.each(arr,function(index,nam

js正则学习及一些正则集合

正则中文版详细说明请看中文版w3cschool-----http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp偶还看微软正则表达式语言-快速参考:http://msdn.microsoft.com/zh-cn/library/az24scfc%28v=vs.110%29.aspx var reg=/(123)/;            var str='abc123';            str=str.replace(reg,'***')