zoukankan      html  css  js  c++  java
  • 2.0 泛型

    1.1里面HashTable ArrayList里面都是object类型,2.0里面泛型对此做了优化
        Dictionary<>其实就好比HashTable.类型更加安全。Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同,hashtable好像是后进先出的。
        
        List<> 类是 ArrayList 类的泛型等效类。
    tag:1.1集合 
    2.关于迭代器

     //自定义数据集合必须实现IEnumerable接口的GetEnumerator()同时数据集合中的元素必须实现IEnumerator接口成员
    //1.1数据集合类
    public class Person : IEnumerable
    {
        
    public string[] m_Names;

        
    public Person(params string[] Names)
        

            m_Names 
    = new string[Names.Length];
            Names.CopyTo(m_Names, 
    0);
        }


        
    public string this[int index]
        
    {
            
    get return m_Names[this]; }
            
    set { m_Names[this= value; }
        }


        IEnumerator IEnumerable.GetEnumerator()
        
    {
            
    //返回一个包含对象的迭代器
            return new PersonEnumerator(this);
        }

    }

    //集合元素类
    public class PersonEnumerator : IEnumerator
    {
        
    int index = -1;
        Person p;

        
    public PersonEnumerator(Person p)
        
    this.p = p; }
        
    object IEnumerator.Current
        
    {
            
    get return p.m_Names[index]; }
        }

        
    bool IEnumerator.MoveNext() {  
            
    //向下移动一位
        }


        
    void IEnumerator.Reset() { index = -1; }
    }



    //2.0没有实现集合元素类,编译器自动完成这个
    class Persons<T> : IEnumerable<T>
    {
        
    private T[] m_Names;

        
    public Persons(params T[] Names)
        
    {
            m_Names 
    = new T[Names.Length];
            Names.CopyTo(m_Names, 
    0);
        }

        
    //使用yield实现简单的迭代器 
        public IEnumerator<T> GetEnumerator()
        
    {
            
    for (int i = 0; i < m_Names.Length; i++)
            
    {
                
    //使用yield 依次返回每个元素
                yield return m_Names[i];
                
    //yield break;终止迭代
            }

        }


        IEnumerator IEnumerable.GetEnumerator()
        
    {
            
    return GetEnumerator();
        }

        
    }
  • 相关阅读:
    HIVE高级(14):优化(14) Hive On Spark配置
    HIVE高级(13):优化(13) Hive Job 优化
    HIVE高级(12):优化(12) 数据倾斜
    HIVE高级(11):优化(11) HQL 语法优化(2) 多表优化
    HIVE高级(10):优化(10) HQL 语法优化(1) 单表优化
    HIVE高级(9):优化(9) Hive 建表优化(1) 分区表/分桶表/合适的文件格式/合适的压缩格式
    HIVE高级(8):优化(8) Explain 查看执行计划(二)
    Hive基础(19):Hive 函数(2) 自定义函数/自定义 UDF 函数/自定义 UDTF 函数
    Hive基础(18):Hive语法(5) DDL(2) 分区表和分桶表
    MATLAB RGB2HSV、HSV2RGB
  • 原文地址:https://www.cnblogs.com/ant520/p/947118.html
Copyright © 2011-2022 走看看