• ArrayList  集合


    ArrayList      

          集合:很多数据的一个集合       数组:长度不可变、类型单一

          集合的好处:长度可以任意改变  类型随便

         集合长度都的问题   很多数据的集合数组类型不可变 长度单一  

         ArrayList  list=new  ArrayList ; 它不是静态的,我们可以尝试的创建一个对象 
               //创建了一个集合对象
                ArrayList list = new ArrayList();
                //集合:很多数据的一个集合
                //数组:长度不可变、类型单一
                //集合的好处:长度可以任意改变  类型随便      

     1 namespace _02集合
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             ArrayList list = new ArrayList();
     8             list.Add(1);
     9             list.Add(3.14);
    10             list.Add(true );//bool
    11             list.Add("李白");//string
    12             list.Add('');//char
    13             list.Add(new int[] { 1, 2, 3, 4, 5, 6, 8, 9 });
    14             list.AddRange(new int[] { 1, 2, 3, 4, 5 });//AddRange表示添加一个集合
    15             list.Add(list );//自己放自己,没意义
    16             for (int i = 0; i <list.Count; i++)//Count实际包含的元素个数
    17             {
    18                 if(list[i] is person )//如果它能转换成Person类型
    19                 {
    20                     ((person)list[i]).say();//强转的前提:必须装有子类对象 有继承关系
    21                 }
    22                 else if (list[i]is int[])
    23                 {
    24                     for (int j = 0; j<((int[])list[i]).Length ; j++)
    25                     {
    26                         Console.WriteLine(((int [])list[i])[j]);
    27                     }
    28                 }
    29                 else
    30                 {
    31                     Console.WriteLine(list[i]);
    32                 }
    33              
    34             }              
    35         }

     ArrayLit集合长度的问题 

    // 每次集合中实际包含的元素个数(count)超过了可包含元素的个数capcity
      //的时候集合就会向内存中申请多开启一倍的空间,来保证集合长度够用

    
    
     1  static void Main(string[] args)
     2          {
     3               ArrayList list = new ArrayList();
     4               list.Add(1);
     5               list.Add(1);
     6               list.Add(1);
     7               list.Add(1);
     8               list.Add(1);
     9               list.Add(1);
    10              list.Add(1);      
    11             Console.WriteLine(list .Count);//0
    12              Console.WriteLine(list .Capacity);//0
    13              //count 表示这个集合的元素实际包含的个数
    14              //capcity 表示这个集合的元素可包含的个数
    15              Console.ReadKey();
    16 
    17        }
    18      }
    19      class person
    20     {
    21          public void say()
    22         {
    23             Console.WriteLine("");
    24          }
    25     }
    26  }
    
    
    
     

    两个练习   创建一个集合,里面添加一些数字,求平均和和 最大值

     1     //创建一个集合,里面添加一些数字,求平均和和 最大值
     2             #region MyRegion       
     3             //ArrayList list = new ArrayList();
     4             //list.AddRange(new int[]{1,2,3,4,5});      
     5             //int sum=0;
     6             //int max=(int )list [0];
     7             //for (int i = 0; i < list .Count ; i++)
     8             //{
     9             //    if ((int)list [i]>max )
    10             //    {
    11             //        max =(int)list[i] ;
    12             //    }
    13             //    sum += (int)list[i];//转为int
    14             //    //为什么能将一个object类型转为int类型
    15             //    //因为你父类装的是子类对象,里氏转换
    16             //}
    17             //Console.WriteLine(sum);
    18             //Console.WriteLine(sum/list.Count);
    19             //Console.WriteLine(max);
    20             //Console.ReadKey();
    21             #endregion

     //写一个长度为10的集合,要求在里面随机地存放10个数字//但是要求所有的数字不重复     

     1   #region MyRegion      
     2             ArrayList list = new ArrayList();
     3             Random r = new Random();
     4             for (int i = 0; i < 10; i++)
     5             //为什么不能写list.Count  Count表示实际包含的个数(0)条件不成立
     6             //循环不执行
     7             {
     8                 int rNumber = r.Next(0, 10);
     9                 //集合中没有这个随机数
    10                 if (!list.Contains(rNumber))//不包含
    11                 {
    12                     list.Add(rNumber);
    13                 }
    14                 else//集合中有这个随机数
    15                 {
    16                     //一旦产生了重复的随机数,这次循环就不算数
    17                     i--;
    18                 }
    19             }
    20             for (int i = 0; i < list.Count; i++)
    21             {
    22                 Console.WriteLine(list[i]);
    23             }
    24             Console.ReadKey();
    25             #endregion

         //将一个数组中的奇数放到一个集合中 ,偶数放左边一个集合 最终放右边一个集合

     //将一个数组中的奇数放到一个集合中 ,偶数放左边一个集合 最终放右边一个集合
                #region MyRegion
                int[] number = { 1, 2, 3, 4, 5, 6, 7, 8 };
                //奇数集合
                List<int> lisji = new List<int>();
                //偶数集合
                List<int> lisou = new List<int>();
                for (int i = 0; i < number.Length; i++)
                {
                    if (number[i] % 2 == 0)
                    {
                        lisou.Add(number[i]);
                    }
                    else
                    {
                        lisji.Add(number[i]);
                    }
                }
                ////合并一个集合 在声明一个新集合
                //List<int> listsum = new List<int>();
                //listsum.AddRange(lisji);
                //listsum.AddRange(lisou);
    
                //直接让一个集合去添加另一个集合
                //lisou.AddRange(lisji);
                //foreach (var item in lisou  )
                //{
                //    Console.Write(item+" ");
                //}
                //Console.ReadKey();
    
                //谁在最前边就让谁去添加类型一个
                lisji.AddRange(lisou);
                foreach (var item in lisji)
                {
                    Console.Write(item + " ");
                }
                Console.ReadKey();
                #endregion

     //提示用户输入一个字符串 ,通过foreach循环将用户输入的字符串赋值 给一个字符数组

     1             //提示用户输入一个字符串 ,通过foreach循环将用户输入的字符串赋值 给一个字符数组 
     2             #region MyRegion
     3             Console.WriteLine("请输入一个字符串");
     4             string input = Console.ReadLine();
     5             char[] chs = new char[input.Length];
     6             int i = 0;
     7             //把字符串给数组你首先要拿到字符串中每个元素
     8             foreach (var item in input)//collection要循环访问的数组和名称
     9             {
    10                 chs[i] = item;//赋值给char类型的数组
    11                 //item:是input每一个元素,
    12                 i++;//每赋值一次i++
    13             }
    14             foreach (var item in chs)
    15             {
    16                 Console.Write(item);
    17             }
    18             Console.ReadKey(); 
    19             #endregion

     

  • 相关阅读:
    BZOJ 1834 Luogu P2604 [ZJOI2010]网络扩容 (最小费用最大流)
    BZOJ 1565 Luogu P2805 [NOI2009]植物大战僵尸 (Tarjan判环、最小割)
    BZOJ 3993 Luogu P3324 [SDOI2015]星际战争 (最大流、二分答案)
    BZOJ 3277 串 & BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析)
    BZOJ 2806 Luogu P4022 [CTSC2012]Cheat (广义后缀自动机、DP、二分、单调队列)
    Mongodb的聚合和管道
    Mongodb文档查询
    Mongodb的基本操作-数据库 集合 文档的增删改查
    Linux下Mongodb的安装
    mongdb的优势和不足
  • 原文地址:https://www.cnblogs.com/enduo/p/7784101.html
Copyright © 2020-2023  润新知