============================ 集合综述 ==============================

1、什么是泛型: 泛型就是限制了操作类型,意思如下:
           
            计算机中经常用到一些数据结构,如队列,链表等,而其中的元素以前一般这么定义:object a=new object();
            用object来表示元素带来一个严重的问题,每次拆箱、封箱占用了大量的计算机资源,导致程序性能低下,
            而泛型就是在编译阶段就告诉编译器,数据结构中元素的种类,既然编译器知道了元素的种类,
            自然就避免了拆箱、封箱的操作,从而显著提高c#程序的性能。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
ArrayList、Hashtable,不是泛型集合,所以添加到他们对象里面的元素都将隐式地向上强制转换为 Object,
                      则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作,降低了相率
List、Dictionary是泛型集合,就不会存在这种现象
List 是 ArrayList 对应的泛型集合,他们相当于特殊的数组
Dictionary 是 Hashtable对应的泛型集合,他们存储的是键值对
========================== ArrayList ============================
ArrayList 典型示例代码。。。。。。。。。。。。。。。。。。。。。。。。。 
为 ArrayList  添加不同类型的元素,然后遍历这些值
         static void Main(string[] args)
         {
            int []num=new int[]{12,4,56,87,8765};
            ArrayList arrayList = new ArrayList();
            arrayList.Add("老马");
            arrayList.Add("老苏");
            arrayList.Add(45.5);
            arrayList.Add(100);
            arrayList.Add(true);
            arrayList.Add(49.34m);
            arrayList.Add('女');
            arrayList.Add(num);
            arrayList.AddRange(num);
            arrayList.Add(new Person("老牛", '女', 74));
            for (int i = 0; i < arrayList.Count; i++)
            {
                Console.WriteLine(arrayList[i]);
                if (arrayList[i] is Person)                   //遍历其中的对象
                {
                    ((Person)arrayList[i]).Show();
                    Console.WriteLine(((Person)arrayList[i]).Name);
                    Console.WriteLine(((Person)arrayList[i]).Age);
                    Console.WriteLine(((Person)arrayList[i]).Gender);
                }
                if (arrayList[i] is int[])                       //遍历其中的整形数组
                {
                    int []numbers=(int[])arrayList[i];
                    for (int j = 0; j < numbers.Length; j++)
                    {
                        Console.WriteLine(numbers[j]);
                    }
                }
            }
            Console.ReadKey();
         }
ArrayList 常用方法、属性 总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
arrayList.Count;
arrayList.AddRange(num);    arrayList.Add(num);   注:两者的区别
arrayList.Clear();
bool result=arrayList.Contains('女');
arrayList.Remove("牛牛");   移除牛牛,如果该项不存在,不报错
arrayList.RemoveAt(3);       移除下标为3的元素
arrayList.Reverse(2,3);    顺序反转
=========================== Hashtable ================================
Hashtable  典型代码 1。。。。。。。。。。。。。。。。。。。。。。。
static void Main(string[] args)
        {
            ht.Add(4, "老苏");
            ht.Add(9,"王二麻子");
            ht.Add("2","打酱油的");
            ht.Add(6,"赵六");
            ht.Add(7,"老苏");
            ht.Add(5,"哈哈");
            ht.Add(8,"呵呵");
            ht.Add("怎么的","把我也放进去");
            foreach (var key in ht.Keys)       //当键是不同数据类型时,用var表示
            {
                Console.WriteLine(ht[key]);
            }
            Console.ReadKey();
        }
Hashtable  典型代码 2 。。。。。。。。。。。。。。。。。。
static void Main(string[] args)
        {
            Hashtable ht = new Hashtable();
            ht.Add("张三", 1000);
            ht.Add("李四", 1010);
            ht.Add("王五", 1012);
            foreach (string item in ht.Keys)        //当键的类型一致时,就使用当前类型代替var
            {
                Console.WriteLine("key是{0},value是{1}",item,ht[item]);
            }
            Console.ReadKey();
        }
Hashtable  常用方法 。。。。。。。。。。。。。。。。。。
Add   将带有指定键和值的元素添加到 Hashtable 中。
 
Clear    从 Hashtable 中移除所有元素。
 
Contains      ContainsKey          两个方法一样   确定 Hashtable 是否包含特定键。
 
ContainsValue           确定 Hashtable 是否包含特定值。 
Remove       从 Hashtable 中移除带有指定键的元素。 
============================= List ==================================
List 典型示例代码 。。。。。。。。。。。。。。。。。。。。
class Program
    {
        static void Main(string[] args)
        {
            int[] nums = new int[] { 12,4,53,5,32};
            List<int> list = new List<int>();
            list.Add(1);
            for (int i = 0; i < 100; i++)
            {
                list.Add(i);
            }
            list.AddRange(nums);         //  添加数组
            
            for (int i = 0; i < list.Count; i++)         //遍历 List
            {
                Console.WriteLine(list[i]);
            }
            
            Console.WriteLine(list.Max());                   //聚集函数的应用
            Console.WriteLine(list.Min());
            Console.WriteLine(list.Sum());
            Console.WriteLine(list.Average());
            
            Console.ReadKey();
        }
    }
========================== Dictionary ============================
static void Main(string[] args)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("老牛", "吃草");
            dic.Add("老马","吃嫩草");
            dic.Add("老蒋", "吃肉");
            dic.Add("老杨", "吃素");
            dic.Add("老王","吃辣椒");
            dic.Add("老苏","吃面条");
            dic.Add("小杨","吃豆腐");
            
            foreach (string item in dic.Keys)
            {
                Console.WriteLine("key是{0},value是{1}",item,dic[item]);
            }
            
            Console.ReadKey();
        }

集合简单总结 ArrayList、List、Hashtable、Dictionary的更多相关文章

  1. 类 Array Arraylist List Hashtable Dictionary

    总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue  我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...

  2. C# 集合类 Array,Arraylist,List,Hashtable,Dictionary...

    我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类.我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和 ...

  3. ArrayList、HashTable、List、Dictionary的演化及如何选择使用

    在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求. 由于这种限制不方便,所以出现了ArrayList. ArrayList.List<T> ArrayList是可变长数组,你 ...

  4. C#基础课程之五集合(HashTable,Dictionary)

    HashTable例子: #region HashTable #region Add Hashtable hashTable = new Hashtable(); Hashtable hashTabl ...

  5. 泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,List<T>,Dictionary<Tkey,Tvalue>,SortedList<Tkey,Tvalue>,Queue<T>,Stack<T>等

    泛型与非泛型集合类在C#程序中是非常重要的一个基础概念,这里列一个表来进行对比: 非泛型集合类 泛型集合类 描述 ArrayList List<T> 表示具有动态大小的对象数组 Hasht ...

  6. C#中集合ArrayList与Hashtable的使用

    C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项 ...

  7. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  8. Java集合简单解析

    一. Collection 1. List a. ArrayList b. Vector c. LinkedList 首先要对List的三种实现进行一个简单的异同比较: 同: *ArrayList和V ...

  9. Java 集合系列 11 hashmap 和 hashtable 的区别

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

随机推荐

  1. POJ 1947 - Rebuilding Roads 树型DP(泛化背包转移)..

    dp[x][y]表示以x为根的子树要变成有y个点..最少需要减去的边树... 最终ans=max(dp[i][P]+t)  < i=(1,n) , t = i是否为整棵树的根 > 更新的时 ...

  2. error: property&#39;s synthesized getter follows Cocoa naming convention for returning &#39;owned&#39; objects

    出现这样的情况,主要是属性名中包括  keyword. You can solve this by: Renaming that property: @property (strong, nonato ...

  3. 公共 DNS server IP 地址

    公共 DNS server IP 地址 名称 DNS server IP 地址 CNNIC SDNS 1.2.4.8 210.2.4.8 114 DNS 114.114.114.114 114.114 ...

  4. (void)(&amp;x==&amp;y)

    #define max(x,y) ({ \ typeof(x) _x = (x);    \ typeof(y) _y = (y);    \ (void) (&_x == &_y); ...

  5. Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性

    CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide  ...

  6. OpenStack里对VPN的支持

    今天翻自己的笔记找到了点去年研究Cloudpipe的东西: 对于用VLAN隔开的项目内主机的访问,可以使用CloudPipe来进行VPN访问 其实就是把OpenStack和OpenVPN集成了一下,给 ...

  7. Spring IOC和DI原理讲解并制作LazyCoder版的Spring (一)

    转载请注意出处:http://blog.csdn.net/zcm101 写在前面的话 最近,给项目组成员培训了Spring 控制反转和依赖注入的原理,并自己做了个Lazy Coder版的Spring, ...

  8. Acitivity的一些属性配置

    转自:http://blog.csdn.net/javayinjaibo/article/details/8855678 1.android:allowTaskReparenting 这个属性用来标记 ...

  9. Python监控网站运行状况

    利用python便捷的类库,可以方便快速实现对网站运行状况的监控,主要包括对80端口(即网站运行端口),其它tcp服务等端口的监控就可以了解服务器大概的一个运行状况,使用的库主要为urllib2及so ...

  10. 我的Python成长之路---第三天---Python基础(13)---2016年1月16日(雾霾)

    五.Python的常用的内置函数 Python为我们准备了大量的内置函数,如下图所示 这里我们只讨论红框内的内置函数 abs(x) 返回一个数的绝对值(模),参数可以是真说或浮点数 >>& ...