ArrayList集合的方法

ArrayList元素的增加、插入、删除、清空、排序、反转

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayList集合的方法
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建了一个集合对象
            ArrayList list = new ArrayList();
            //集合:很多数据的一个集合
            //数组:长度不可变、类型单一
            //集合的好处:长度可以任意改变 类型随意
            list.Add(123);
            list.Add("asd");
            list.Add(true);
            list.Add('a');
            list.Add(1000m);//Add 添加单个元素
            list.AddRange(new int[] { 1, 2, 3, 4, 56, 7, 9, 8, 7 });
            list.AddRange(list);//AddRange 添加数组、集合
            Person p = new Person();

            list.Clear();//清空所有元素
            list.Remove(true);//删除单个元素,写谁就删谁
            list.RemoveAt(0);//根据下标去删除元素
            list.RemoveRange(0, 4);//根据下标去移除一定范围的元素
            list.Reverse();//反转
            list.Sort();//升序排列(只能排列数字)
            list.Insert(1,"插入的");//在指定索引位置插入单个元素
            list.InsertRange(0, new string[] { "张三", "李四" });//在指定位置插入一个集合
            bool b = list.Contains(1);//判断是否包含某个指定的元素,返回一个bool值
            if(list.Contains("2"))//如果判断不包含,在前面加一个!  比如说if(!list.Contains("2"))
            {
                Console.WriteLine("包含");
            }
            else
            {
                Console.WriteLine("不包含");
            }
            for (int i = 0; i < list.Count; i++)
            {
                if (list[i] is Person)
                {
                    ((Person)list[i]).PersonSayHi();
                }
                else if (list[i] is int[])
                {
                    for (int j = 0; j < ((int[])list[i]).Length; j++)
                    {
                        Console.WriteLine(((int[])list[i])[j]);
                    }
                }
                else
                {
                    Console.WriteLine(list[i]);
                }



            }
            Console.ReadKey();

        }
    }
    public class Person
    {
        public void PersonSayHi()
        {
            Console.WriteLine("hello");
        }
    }
}

我们将一个对象输出到控制台  默认情况下 打印的就是这个对象的类的命名空间

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ToString的问题
{
    class Program
    {
        static void Main(string[] args)
        {
            //我们将一个对象输出到控制台  默认情况下 打印的就是这个对象的类的命名空间
            int[] nums = { 1, 2, 3, 4, 5, 5, 6 };
            Console.WriteLine(nums.ToString());
            Console.ReadKey();
        }
    }
}

 

 

集合长度的问题

ArrayList集合长度的问题

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

 

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

using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 集合的两个练习
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个集合,里面添加一些数字,求平均值与和

            ArrayList list = new ArrayList();
            list.AddRange(new int[]{ 1,2,3,4,4,555,3});
            int sum = 0;
            for (int i = 0; i < list.Count ; i++)
            {
                sum += (int)list[i];//强转成int类型
            }
            int avr = sum / list.Count;
            Console.WriteLine(sum);
            Console.WriteLine(avr);
            Console.ReadKey();
        }
    }
}
View Code

 

 

写出一个长度为10的集合,要求里面随机地存放10个数字(0-9),但是要求所有的数字不重复

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 集合的两个练习
{
    class Program
    {
        static void Main(string[] args)
        {
            ////创建一个集合,里面添加一些数字,求平均值与和

            //ArrayList list = new ArrayList();
            //list.AddRange(new int[]{ 1,2,3,4,4,555,3});
            //int sum = 0;
            //for (int i = 0; i < list.Count ; i++)
            //{
            //    sum += (int)list[i];//强转成int类型
            //}
            //int avr = sum / list.Count;
            //Console.WriteLine(sum);
            //Console.WriteLine(avr);
            //Console.ReadKey();


            //写出一个长度为10的集合,要求里面随机地存放10个数字(0-9),但是要求所有的数字不重复
            ArrayList list = new ArrayList();
            Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                int rNumber = r.Next(0, 10);
                //集合中没有这个随机数
                if (!list.Contains(rNumber))
                {
                    list.Add(rNumber);
                }
                else//集合中有这个随机数
                {
                    //一旦产生了重复的随机数,这次循环不算数,退一格重新来
                    i--;
                }
            }
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(list[i]);
            }

            Console.ReadKey();
        }
    }
}
View Code

 

posted @ 2021-07-07 20:30  静态类  阅读(115)  评论(0编辑  收藏  举报