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();
  9. list.Add(3.14);
  10. list.Add(true );//bool
  11. list.Add("李白");//string
  12. list.Add('男');//char
  13. list.Add(new int[] { , , , , , , , });
  14. list.AddRange(new int[] { , , , , });//AddRange表示添加一个集合
  15. list.Add(list );//自己放自己,没意义
  16. for (int i = ; 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 = ; 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.  
  1. static void Main(string[] args)
  2. {
  3. ArrayList list = new ArrayList();
  4. list.Add();
  5. list.Add();
  6. list.Add();
  7. list.Add();
  8. list.Add();
  9. list.Add();
  10. list.Add();
  11. Console.WriteLine(list .Count);//
  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.  
  1.  

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

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

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

  1. //将一个数组中的奇数放到一个集合中 ,偶数放左边一个集合 最终放右边一个集合
  2. #region MyRegion
  3. int[] number = { , , , , , , , };
  4. //奇数集合
  5. List<int> lisji = new List<int>();
  6. //偶数集合
  7. List<int> lisou = new List<int>();
  8. for (int i = ; i < number.Length; i++)
  9. {
  10. if (number[i] % == )
  11. {
  12. lisou.Add(number[i]);
  13. }
  14. else
  15. {
  16. lisji.Add(number[i]);
  17. }
  18. }
  19. ////合并一个集合 在声明一个新集合
  20. //List<int> listsum = new List<int>();
  21. //listsum.AddRange(lisji);
  22. //listsum.AddRange(lisou);
  23.  
  24. //直接让一个集合去添加另一个集合
  25. //lisou.AddRange(lisji);
  26. //foreach (var item in lisou )
  27. //{
  28. // Console.Write(item+" ");
  29. //}
  30. //Console.ReadKey();
  31.  
  32. //谁在最前边就让谁去添加类型一个
  33. lisji.AddRange(lisou);
  34. foreach (var item in lisji)
  35. {
  36. Console.Write(item + " ");
  37. }
  38. Console.ReadKey();
  39. #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 = ;
  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

ArrayList  集合的更多相关文章

  1. C#语言基础——集合(ArrayList集合)

    集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...

  2. ArrayList集合 、特殊集合

    一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...

  3. 2016年10月16日--ArrayList集合、特殊集合

    ArrayList集合 使用前引用 using System.Collections; ArrayList集合 实例化.初始化 ArrayList al = new ArrayList(); Arra ...

  4. ArrayList集合&特殊集合

    一.ArrayList集合 集合内可以放不同类型的元素 另:object类型为所有数据类型的基类 添加元素:.add(); 清空集合:al.clear(); 克隆集合:.clone(); 判断是否包含 ...

  5. 5月11日 ArrayList集合复习、特殊集合、枚举类型

    一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(); //插入元素 al.Insert(,); //查看个数 in ...

  6. C#部分---arraylist集合、arraylist集合中的object数据转换成int类string类等;间隔时间的表示方法;

    ArrayList和Array的区别: 相同点:1.两者都实现了IList.ICollection.IEnumerable接口:       2.两者都可以使用证书索引访问集合中的元素,包括读取和赋值 ...

  7. ArrayList集合的语句示例

    namespace ArrayList集合的语句示例{    class Program    {        static void Main(string[] args)        {    ...

  8. java集合 collection-list-ArrayList 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。

    import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素. 比如:存人对象.同姓名同年龄,视为同一个人.为重复元素. 思路: 1,对人描述,将数据 ...

  9. java集合 collection-list-ArrayList 去除ArrayList集合中的重复元素。

    import java.util.*; /* 去除ArrayList集合中的重复元素. */ class ArrayListTest { public static void sop(Object o ...

  10. ArrayList集合排序

    using System;using System.Collections;using System.Collections.Generic;using System.Text; namespace ...

随机推荐

  1. 2019.3.7考试T2 离线数论??

    $ \color{#0066ff}{ 题目描述 }$ 一天,olinr 在 luogu.org 刷题,一点提交,等了一分钟之后,又蛙又替. olinr 发动了他的绝招,说:"为啥啊???&q ...

  2. 《Andrew Ng深度学习》笔记3

    浅层神经网络 初步了解了神经网络是如何构成的,输入+隐藏层+输出层.一般从输入层计算为层0,在真正计算神经网络的层数时不算输入层.隐藏层实际就是一些算法封装成的黑盒子.在对神经网络训练的时候,就是对神 ...

  3. Application received signal SIGABRT

    Application received signal SIGABRT (null) (( 0 CoreFoundation 0x0000000182bbadc8 <redacted> + ...

  4. js 的常用选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. sock文件

    无论是mysql,uwsgi还是nginx都会用到sock文件 首先它是由程序自动创建的,并不是我们自己手动.它的作用是用来通信.与之相对应的是tcp socket ,一般的程序会同时支持这两种方式, ...

  6. python期中总结

    1.tuple 元组 与列表类似 tup1 = (12, 34.56) tup2 = ('abc', 'xyz') # 以下修改元组元素操作是非法的. # tup1[0] = 100 # 创建一个新的 ...

  7. CentOS 7 基础网络配置

    基础的网络配置,包括静态IP地址.子网掩码.网关.DNS,使用 nmtui 和 nmcli 工具时必须开启 NetworkManager 服务 文本用户界面工具 nmtui [root@localho ...

  8. [HAOI2015]按位或(FWT)

    [Luogu3175] [BZOJ4036] [DarkBZOJ没有spj] 原理-shadowice 本题题解 我们要求的,实际上是一个集合\(n\)个\(1\)中最晚出现的\(1\)的期望时间 显 ...

  9. 大佬的编码建议,让你的代码更pythonic

    大佬的编码建议,让你的代码更pythonic Raymond Hettinger是 Python 核心开发者,本文提到的许多特性都是他开发的. 若无例外,本文代码中出现的 colors names d ...

  10. POJ_2480 Longge's problem【积性函数+欧拉函数的理解与应用】

    题目: Longge is good at mathematics and he likes to think about hard mathematical problems which will ...