zoukankan      html  css  js  c++  java
  • 面向对象 集合篇

    集合概念:

    集合本质上是一个动态数组


    2.命令引用:using system.collections
    2.1 Arratlist 属性(count) 数量 、属性2(capactity) 有几个位子 //集合里包括属性和方法
    2.2 arratlist list =new arraylist();
    list.add(欲添加的值) object 类型的 为什么这里可以使object 类型的? 是因为object 是所有类型的父类,父类引用指向子类对象 所有类型都可以放在集合中去。

    2.3 集合与数组不同之处在于数组的元素一旦定死则无法变动,而集合更加灵活的原理在于,一旦超出数组的位置之后,先创建一个比原数组的大于原数组的长度的四个元素的新元素、将旧数组的元素值赋予新数组的之后将原旧数组销毁,并且将新的元素填满。注,比如用add加入了大于四个元素的位置,它就会显示8个。

    public class Class1
    {

    public object[] Array { get; set; } //封装一个class 1 的集合
    public int Count { get; set; } 定义属性
    public Class1()
    {

    Array = new object[4]; // 无参的构造函数创建一个旧的数组
    }

    public void add(object o)
    {


    if (Array.Length == Count) //传递一个有参的参数 并且如果元素已满
    { 创建一个新的数组+4 并且将新的引用指向旧的数组引用

    object[] a = new object[Array.Length + 4];
    Array = a;


    }

    Count++;


    }

    }
    }


    ArrayList: 属性和方法
    Add(object o) 添加元素
    AddRange() 添加范围

    二 new 对象的时候 对象的引用指向集合中的元素位置 存的只是引用地址 如果打印的话,那么只会打出类名
    注:
    打印一个输出一个对象实际上是调用该对象的tostring 方法()
    如果要打印对象的信息、那就必须要重写。因为object 父类中是虚方法。

    2.移除元素
    Remove (object o)根据值来删除
    删除对象的时候,由于集合里面存放的是引用地址,而引用地址又是原来的地址,删除时虽然填入的是相同的值,但是实际上在删除查找的时候并没有找到这个地址,所以删除不了
    如果要删除,则定义一个变量,利用这个变量来删除
    循环删除的元素,删除了第0个值,之后循环+1 数组长度-1 原来的1值变成第0值,而循环的数为1,则删第1个数,而不是删除第0个数值。
    RemoveAT (int index) 根据提供的下标删除指定的元素 //第几个元素

    List<T> 泛型

    T 是类型参数 使用时由使用者来指定


    对比:
    Arravlist 的优点:

    什么都能放、非常的灵活

    缺点:
    1.类型不安全
    2.操作台麻烦
    3.效率太低

    2.装箱与拆箱

    将基本类型转成object 装箱操作
    将object 类型还原成基本类型 拆箱操作

    list<T>和Arraylist 操作方法没有任何区别

     4.枚举类型

    enum Color
    { 
        Red,
        Green,
        Blue
    }
  • 相关阅读:
    P4127 [AHOI2009]同类分布
    区间DP
    P3146 [USACO16OPEN]248
    P1241 括号序列
    P2858 [USACO06FEB]奶牛零食Treats for the Cows
    P2602 [ZJOI2010]数字计数&P1239 计数器&P4999 烦人的数学作业
    数位DP
    jquery生成元素注册事件无效,及事件委托的使用
    Jquery ajax运用执行顺序有误怎么解决
    html页面输入框input的美化
  • 原文地址:https://www.cnblogs.com/liyiyong/p/5099846.html
Copyright © 2011-2022 走看看