首页 > 其他分享 >集合和泛型

集合和泛型

时间:2024-04-09 21:33:38浏览次数:19  
标签:Console stu System 集合 WriteLine 泛型 using

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//ArrayList的简单例子
using System.Collections;//引用集合的  命名空间

namespace ArryList的简单例子
{
    class Program
    {
        static void Main(string[] args)
        {
            //------------------------------------------------------------------------
            /*动态维护不定长,下标(索引值)是动态维护的,它只能是一维不能多维*/
            //创建ArrayList集合的对象al
            ArrayList al = new ArrayList();

            //向集合中添加元素
            al.Add("金庸");
            al.Add("黄易");
            al.Add("古龙");

            //通过索引输出集合中的元素
            Console.WriteLine(al[1]);

            //使用foreach遍历(每个元素访问一遍)集合al,输出所有元素
            Console.WriteLine("集合中的所有元素:");
            foreach (string s in al)/*我要找的类型,找出的结果自己命名,in,从集合中找*/
            {
                Console.WriteLine(s);
            }

            //添加元素可以动态进行
            al.Add("张三");
            Console.WriteLine("集合中的所有元素:");
            foreach (string s in al)
            {
                Console.WriteLine(s);
            }

            //删除方法1:通过 索引 去删除集合中的元素,删除后,集合的索引会自动调整到从0开始
            al.RemoveAt(0);
            Console.WriteLine("删除索引为0的元素后,现在第一个元素是:" + al[0]);

            //删除方法2:通过集合中的值内容去删除集合元素
            al.Remove("黄易");
            Console.WriteLine("删除值为“黄易”的元素后,现在第一个元素是:" + al[0]);

            //清空方法:清除集合中的所有元素
            al.Clear();
            Console.WriteLine("清除集合中的所有元素后:");
            foreach (string s in al)
            {
                Console.WriteLine(s);
            }
            //程序等待
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//命名空间
using System.Collections;
namespace ArryList与对象的操作
{
    class Program
    {
        //------------------------------------------------------------------------

//ArrayList与对象的操作
        //跟对象联系紧密,在一维数组集合中首先考虑,
        //首先定义类--实例化--读出来的时候要强制类型转换--

       //类
        class stu
        {
            //字段
            private string name;
            private int age;
            //有参数的构造方法
            public stu(string name,int age)
            {
                this.name = name;
                this.age = age;
            }
            //输出
            public void say()
            {
                Console.WriteLine("姓名:{0} 年龄:{1}",name,age );
            }
        }

      static void Main(string[] args)
        {
             ArrayList a = new ArrayList();
            //实例化类对象并添加到集合里
            stu s1 = new stu("张三",18);
            stu s2 = new stu("李四",20);
            stu s3 = new stu("王五",19);
            stu s4 = new stu("陆六",21);
           
            a.Add(s1);
            a.Add(s2);
            a.Add(s3);
            a.Add(s4);
            //((stu)a[0]).say();a0强制转换为stu类,通过大括号才能识别
            //集合和泛型的最大不同点:集合数据不安全,

            //利用循环--for
            for (int i = 0; i < a.Count;i++ )
            {
                stu stuFor = (stu)a[i];
                stuFor.say();
            }
            //删除方法:
          
            a.Remove(a[0]);
            a.Remove(s2);
            a.RemoveAt(0);
            a.Clear();
            Console.WriteLine("-----------------------------------");
            //利用循环--foreach
            foreach (object s in a)
            {
                stu stuForeach = (stu)s;
                stuForeach.say();
            }

            //程序等待
            Console.ReadLine();


            //通过这个例子,要理解到,ArrayList集合是可以存对象的
            //并且存进去的元素全部都会转变成object的对象
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;//引用集合命名空间

namespace HashTable应用
{
    class Program
    {
        //------------------------------------------------------------------------

        //HashTable应用
        //哈希表之电话本
        //包括一个键值(hash),和值,一一对应----读出来也要类型转换

        //电话本应用--自己优化
        static void Main(string[] args)
        {
            //实例化集合对象
            Hashtable ht = new Hashtable();
            while (true)
            {
                //界面
                Console.WriteLine("\n==========请选择操作==========");
                Console.WriteLine("1、添加联系人 2、查找 3、显示");
                Console.WriteLine("==============================");
                //用户选择
                string input = Console.ReadLine();//定义字符串不用类型转换
                //判断用户的选择
                switch (input)
                {
                    case "1":
                        Console.WriteLine("请输入联系人姓名:");
                        string name = Console.ReadLine();
                        //是否已经存在此姓名
                        if (ht.ContainsKey(name))//判断给的值在不在集合中间
                        {
                            Console.WriteLine("该联系人已存在!");
                        }
                        else//如果不存在就添加
                        {
                            Console.WriteLine("请输入联系人的电话:");
                            string tel = Console.ReadLine();
                            //添加到哈希表中保存
                            ht.Add(name, tel);//账号名(键值),电话()
                            Console.WriteLine("添加成功");
                            Console.WriteLine("=====共有联系人:{0}=====", ht.Count);
                        }
                        break;
                    case "2"://(查询在不在电话本中)
                        Console.WriteLine("请输入要查询的联系人姓名:");
                        string finaName = Console.ReadLine();
                        if (ht.ContainsKey(finaName))
                        {
                            Console.WriteLine("你所查找的联系人电话为:{0}", ht[finaName]);
                        }
                        else
                        {
                            Console.WriteLine("该联系人不存在!");
                        }
                        break;
                    case "3"://遍历一下,然后显示
                        foreach (string s in ht.Keys)//遍历键值(姓名)
                        {
                            Console.WriteLine("姓名:{0} 电话:{1}", s, ht[s]);
                        }
                        break;
                    default: Console.WriteLine("输入错误,请重新输入!"); break;
                }
            }

            //程序等待
            Console.ReadLine();
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace List泛型应用
{
        //------------------------------------------------------------------------
        //List泛型应用
        class Program
        {
            //类
            class stu
            {
                //字段
                private string name;
                private int id;
                //属性
                public int Id
                {
                    get
                    {
                        return id;
                    }
                    set
                    {
                        id = value;
                    }
                }
                //有参数构造方法
                public stu(string name, int id)
                {
                    this.name = name;
                    this.Id = id;
                }
                //输出方法
                public void say()
                {
                    Console.WriteLine("姓名为{0},学号为{1}", name, Id);
                }
            }

            static void Main(string[] args)
            {
                //实例化泛型集合对象
                List<stu> lstStu = new List<stu>();
                //实例化类对象
                stu s1 = new stu("张三", 1);
                stu s2 = new stu("李四", 2);
                stu s3 = new stu("王五", 3);
                stu s4 = new stu("陆六", 4);
                //添加到泛型集合里
                lstStu.Add(s1);
                lstStu.Add(s2);
                lstStu.Add(s3);
                lstStu.Add(s4);
                //输出
                Console.WriteLine("第一种输出方式:foreach循环");
                foreach (stu s in lstStu)
                {
                    s.say();//不用类型转换
                }
                Console.WriteLine("----------------------------------");
                Console.WriteLine("第二种输出方式:ForEach()方法");
                //ForEach()方法可以使用委托对集合的每一个成员进行操作
                //delegate(参数) 语句;
                lstStu.ForEach(
                    delegate(stu s) { s.say(); }
                    );//这是方法,有委托事件(用于调用),要调用的方法

                Console.WriteLine("----------------------------------");
                //FindAll()方法检索与指定谓词所定义的条件相匹配的所有元素
                //它是委托中可以带函数的了,
                List<stu> ls = lstStu.FindAll(//定义新的泛型来
                    delegate(stu s)
                    {
                        if (s.Id < 3)//学号是否小于三
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }
                    );
                foreach (stu s in ls)
                {
                    s.say();
                }

                //程序等待
                Console.ReadLine();
            }
        }
    }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//arry是集合的基类所以不用引用内存(空间)
namespace x1808_5_21_集合和泛型
{
    class Program
    {
        static void Main(string[] args)
        {
            Array arr = Array.CreateInstance(typeof(string), 5);
            //只能调用方法setvalue设置值getvalue得到值
            /*array(数组)是c#集合的基类可以定义多维数据,缺点是静态分布,固定长度*/
            arr.SetValue("金庸", 0);
            arr.SetValue("古龙", 1);
            arr.SetValue("黄易", 2);
            arr.SetValue("梁羽生", 3);
            arr.SetValue("诸葛青云", 4);
            Console.WriteLine("数组元素总个数:" + arr.Length);
            Console.WriteLine("\n数组元素是:");
            /*得到arry属性的*/
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("第{0}个元素是:{1}", i + 1, arr.GetValue(i));
            }
            /*sort排序的方法,下面是字符串排序,翻译为拼音后首字母比较ascii码,次字母比较*/
            Array.Sort(arr);
            /*输出排序后的元素*/
            Console.WriteLine("\n排序后数组为:");
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("第{0}个元素是:{1}", i + 1, arr.GetValue(i));
            }

            //程序等待
            Console.ReadLine();


        }
    }
}

 

标签:Console,stu,System,集合,WriteLine,泛型,using
From: https://www.cnblogs.com/bky-wang/p/18124878

相关文章

  • Java基础知识-面向对象编程(OOP)-Java集合框架-多线程和并发-Spring框架
    Java基础知识:Java的四种基本数据类型是:byte、short、int、long(整数类型)、float、double(浮点类型)、char(字符类型)、boolean(布尔类型)。它们之间的区别主要在于占用的内存大小和表示范围不同。Java中的String是不可变的意味着一旦String对象被创建,它的值就不能被修改。这意味着St......
  • 【数据结构 | 并查集】维护元素分组信息,支持高效合并集合、查询元素所在集合
    文章目录并查集概述引入并查集的实现存储方式Union-Find抽象基类两种实现思路基本实现基于QuickFind思路基于QuickUnion思路优化基于size的优化基于rank的优化find优化路径压缩路径分裂路径减半总结并查集概述并查集(DisjointSetUnion,简称并查集),也叫......
  • 前端-题目集合
    1.前端开发:JS事件循环机制  事件循环什么是事件循环(EventLoop)?众所周知,Javascript是一门单线程的语言,单线程即同一时间只能做一件事,但这并不意味着JavaScript在执行代码的过程中就会一直阻塞,而解决单线程不阻塞的这个机制就叫做事件循环(EventLoop),也就是......
  • Set集合以及其中实现类的底层原理分析
    Set集合的特点无序:存取顺序不一致如存入张三、李四、王五。而遍历获取到的是李四,张三,王五不重复:可以去除重复无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素set集合的实现类HashSet:无序、不重复、无索引LinkedHashSet:有序、不重复、无索......
  • Python集合
    在Python中,集合是一种无序、可变的数据类型,用于存储不重复的元素。Python提供了两种内置的集合类型:set和frozenset。set(集合):set是可变的,意味着可以对其进行增删改操作。通过花括号{}或者使用set()函数来创建集合。集合中的元素是不可重复的,因此添加重复元素不会引发错......
  • Java集合常用类及使用特点
    Java集合框架提供了一组接口和类,用于存储和操作对象集合。它包括常用的数据结构,如列表、集合、映射等,以及对应的实现类。主要接口和类:List(列表):允许重复元素,按照插入顺序存储。常用实现类有ArrayList(查询快、增删慢)和LinkedList(增删快、查询慢)。ArrayListvs.LinkedList:Ar......
  • 集合
    一、集合基本框架结构java集合基本结构可分为两大类:Collection和Map两种体系1、collection接口:单列数据,定义了存取一组对象的方法和集合2、Map接口:双列数据,保存具有映射关系的“key-value对”的集合1、conllection常用子接口List接口:常用的有ArrayList、LinkedList、Vector........
  • 【Python基础】集合
    文章目录@[toc]什么是集合集合的特点元素不重复性示例无序性示例集合操作增加元素add()方法删除元素clear()方法pop()方法remove()方法交集intersection()方法&符号isdisjoint()方法并集union()方法|符号差集difference()方法-符号对称差集symmetric_difference(......
  • day02元组-集合-字典
    元组 概念元组:由一系列变量组成的不可变序列容器序列:支持索引和切片不可变:1.没有增删改的方法2.所有的操作都不会直接作用于原数据 定义<spanstyle="font-size:16px;"data-mce-style="font-size:16px;">元组tuple()#1.定义多......
  • 【非欧几何】曼德布洛特集合
    MandelbrotExterior:目录一、说明二、什么是曼德布洛特集合三、曼德布洛特图外部的平滑阴影四、曼德布洛特算法五、平滑转义迭代计数一、说明  曼德布洛特集合,是非常神奇的复平面映射函数,也是分形几何图像的早期研究。本文将这种概念进行粗略简绍,以记录这种题......