集合类
数组特点:类型统一、长度固定
集合特点:不限类型、长度可变
集合常用操作:添加、修改、移除、查找、遍历,主要从这5个方面学习
命名空间System.Coections
Arrayist:(可以看成动态数组)
可变长度数组,使用类似于数组,使用索引访问和遍历
属性Capacity:集合中可以容纳元素的个数,空间不够使,翻倍增长
属性Count:集合中实际存放的元素的个数
方法Add() 、AddRange(Icoection c) :添加
方法Remove()删除指定的元素、RemoveAt() 删除指定下标的元素:删除元素,删除后,后面的元素索引自动-1
方法Cear() :清除
方法Contains()包含 、ToArray()转为数组、Sort()排序、Reverse()反转
集合中可以存放任何类型的数据,但是无论什么类型的数据放到Arrayist中以后都变成了Object类型,所以从Arrayist中取出的数据需要类型转换、
自定义排序
方法1:让自定义类实现IComparabe接口,实现CompareTo方法;此时,使用Arrayist对象的Sort()方法即可排序
方法2:自定义比较器,让类实现IComparer接口,实现CompareTo方法;此时,使用Arrayist对象的Sort(IComparer)方法,将自定义比较器对象作为参数即可排序
Hashtabe
以键值对的形式存储数据
键不能重复
查找元素的时候速度很快,使用键进行计算哈希码,然后这个哈希码作为地址,将值数据存入
方法Add(object key,object vaue);
方法hash[“key”]:访问
方法hash[“key”]=“”:可以添加、修改
方法ContainsKey(“key”)、Contains():是否包含某个键
方法Remove(“key”):根据键删除某个项
属性Keys、属性Vaues
遍历时,项的类型是DictionryEntry
foreach执行原理(*)
想使用foreach来循环遍历某类型,这个类型必须实现了IEnumerabe接口,实现pubic IEnumerator GetEnumErator()方法
该方法返回IEnumerator类型的对象,此方法不是用来遍历,而是用来得到一个迭代器,这个迭代器才是用于遍历的对象
画图演示执行过程:如何得到迭代器,如何移动指针
foreach循环是只读的,不能用来修改数据
foreach循环式只进的,并且是一条一条循环的
泛型集合
命名空间System.Coections.Generic
带有<类型名>的类型,称为泛型
•ist<T>是Arrayist的升级版,方法类似于Arrayist
•Dictionary<K,V>是Hashtabe的升级版,方法类似于Hashtabe
•以后用到集合时,推荐使用泛型集合
T,K,V就像一把锁,锁住集合只能存某种特定的类型,这里的T,K,V也可以是其它字母
泛型集合可以进行foreach遍历,是因为实现了IEnumerabe<T>具有了GetEnumerator()方法
示例:
ist<int> 这个表示该类型是一个存储int类型的集合
Dictionary<string, Person> 表示用字符串作为键,用Person作为值的集合

转载于:https://www.cnblogs.com/zxx193/archive/2013/04/07/3006392.html

集合(ArrayList、Hashtable、泛型集合)相关推荐

  1. java 泛型集合 json_将泛型集合转换成分页json数据

    [java]代码库package com.sunweb.util.jsonfactory; import java.util.List; import com.sunweb.util.jsonfact ...

  2. java 泛型集合应用_Java泛型集合的应用和方法

    展开全部 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以62616964757a686964616fe78988e69d8331333 ...

  3. C#中的集合、哈希表、泛型集合、字典

    集合ArrayList 集合:集合可以看做是数组,可以将其看成"长度可变,具有很多方法的数组".使用ArrayList,首先需要导入命名空间using.system.collect ...

  4. 集合与泛型集合与键值对集合

    1,集合 (Connections) ArrayList arr = new ArrayList();//可以add arr.Add("Hello girls!");//支持添加o ...

  5. C#学习七(包含File字节流,list泛型集合、拆装箱、ictionary字典,文件流FileStream、StreamReader和StreamWrite、多态)

    一.对前面部份的总结 using System.Collections; using System.IO; using System.Text;namespace _074_复习 {class Pro ...

  6. C#泛型集合定义及使用

    C# 语言中泛型集合是泛型中最常见的应用,主要用于约束集合中存放的元素. 由于在集合中能存放任意类型的值,在取值时经常会遇到数据类型转换异常的情况,因此推荐在定义集合时使用泛型集合. 前面<C# ...

  7. C#:List泛型集合

    数组的不足 我们在使用数组管理数据的时候,是需要预先知道数组的长度的.但是在我们实际的开发过程中,很多数据往往无法事先知道一共有多少,在面对这些数据的时候,就无法使用数组来进行管理了. 一.集合结构 ...

  8. java面向对象编程集合边框_JAVA 面向对象 集合框架

    1.Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象--可以使用Java集合框架 2.java ...

  9. C#方法,可空类型,数组,集合,ArrayList排序,List,Hashtable和Dictionary

    C#方法 方法的定义: public void/int Compare(int a,int b){ } Program program = new Program(); Console.WriteLi ...

  10. C#泛型集合之Dictionaryk, v使用技巧

    1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2.描述 1).从一组键(Key)到一组值(Value) ...

最新文章

  1. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] A A Problem about Polyline(数学)
  2. 使用支持向量机训练mnist数据
  3. 永磁同步电机矢量控制(二)—— 控制原理与坐标变换推导
  4. 魔方cfop公式软件_按这七步训练,你可以快速玩转魔方!
  5. 描述个人品质常用英语单词一览
  6. 华为ENSP进行evn实验,尚不完整,但已经有RT1、RT2、RT3、RT4了
  7. Ubuntu16.04 安装NVIDIA英伟达驱动教程
  8. java基础/接口与继承1(0.96万字)
  9. skipping incompatible xxxx.a when searching for -lxxx问题的解决
  10. Java并发编程总结
  11. 目标检测和感受野的总结和想法
  12. win10找不到你的相机,错误代码0xA00F4244解决办法
  13. Unity各版本差异
  14. android自定义item大小,Android GridView Item平分宽度
  15. 他在自己的荣光中如此孤独,孤独地连一个敌人都没有剩下。
  16. TTF文件的制作——打造属于自己的字体
  17. Learning Plausible Inferences from Semantic Web Knowledge - note (详细题目见正文)
  18. 验证身份证号码是否为正确值
  19. java中System.Properties的用法
  20. 3DMAX 阵列工具、间隔工具快捷键

热门文章

  1. 6.SpringMVC 配置式开发-处理器
  2. 到底什么才是自动化巡检?
  3. 【用jersey构建REST服务】系列文章
  4. Github上十大C#开源项目排行榜
  5. AdTime:多屏时代下传统媒体的鼓起
  6. VMware Perl SDK error “Server Version Unavailable .. line 545”
  7. 浙商证券计算机组成原理,中国海洋大学计算机组成原理期末模拟参考答案.doc...
  8. GridView里面的Item高度设置
  9. js基础-17-解析url的函数,字符串出现的次数最多,并统计它出现几次
  10. c语言qsort函数对结构体的一级排序,sort和qsort函数对结构体的二级排序