1.ArrayList 

     ArrayList非常类似于数组,也有人称它为数组列表,ArrayList可以动态维护。

      因为数组的长度是固定的,而SArrayList的容量可以根据需要自动扩充。

      ArrayList也提供了一系列的方法对其中的元素进行访问,增加和删除操作。

      ArrayList累属于System.Collections命名空间。

  语法:

    using System.Collections;

    //创建容量为0的ArrayLst对象

            ArrayList stu=new ArrayList();

            //创建容量为5的ArrayList对象

            ArrayList tea=new ArrayList(5);

  常用的属性和方法:

      属性名称            说  明

      Count               获取ArrayList中实际包含的元素数

      返回值类型    方 法 名 称            说    明

      int        Add(Object  value)         将对象添加到ArrayList的结尾处

      int               RemoveAt(int index)          移除ArrayList指定索引处的元素

      int        Remove(Object value)         从ArrayList指定特定对象

      int        Clear()                从ArrayList中移除所有对象

 (1).给ArrayList添加数据

    ArrayList通过add()方法添加元素

      返回值:值是一个int整形,用于返回所添加的缘故的索引

      参数:    如果向ArrayList中添加的元素是值类型,这些元素就都会装箱处理转换为Object 引用类型,然

          后保存。

    例:

private void btntest_Click(object sender,EventArge e){
//建立部门工程师集合
ArrayList list =new ArrayList();
//初始化一个员工
SE se=new SE();
se.Name="王小毛"; //名称
se.Id=101; //工号
se.Age=17; //年龄
list.Add(se);
MessageBox.Show("部门有几个员工"+list.Count.ToString());
}

    (2)存取ArrayList中的单个元素

       

SE eng =(SE) eng [0];
MessageBox.Show(eng.SayHi());

      每当我们获取它的每个元素时,都需要进行类型的装换,这里转换为SE类型

    遍历ArrayList中的元素:

        

int [] array = new int []{0,1,2,3,4};
for(int i=0;i<array.length;i++)
{
Console.WriteLine(array[i]);
}

  (4)删除ArrayList中的元素、

    

//建立员工集合
ArrayList eng =new ArrayList();
//演示删除元素
eng,RemoveAt(0); //删除索引为0的元素
eng.Remove(ema); //删除对象名为ema的元素

    ArrayList添加个删除元素都会使剩余元素的索引自动改变。

    Remove()方法和RenmoveAt()方法只能删除一个元素,当需要删除全部元素时,就可以用Clear()方法删除集合宏的

      所有元素。

    Hashtable 

      Hashtable 通过Add了()方法添加元素,也属于System.Collections命名空间。

      Hashtable的数据是通过键(Key)和值(value)来组织的 。

     常用的属性和方法:

    属性名称:

      Count :获取包含在Hashtable中的键/值对的数目

      Keys:获取包含在Hashtable中的集合

      Values:获取包含在Hashtable中的集合

    返回值类型:

      void    :Add(Object key,Object vaue)    : 将指定的键/值添加到Hashtable中

      void    :Remove(Object key)         :从Hashtable中移除指定的键的元素

      void    :Clear()         :从Hashtable中移除所有元素

    (1)Hashtable通过Add()方法添加元素

      实例:

        

//new 一个Hashtable的对象
Hashtable has=new Hashtable();
//初始化一个员工的信息
SE se=new SE();
se.Name="王小毛";
se.ID=1;
se.Age=17; SE joe=new SE();
joe.Name="王小毛";
joe.ID=1;
joe.Age=17;
has.Add(se.ID,se);
has.Add(joe.ID,se); Console.WriteLine(string.Format("部门{0}个员工",has.Count.ToString()));

    获取Hashtable的元素

      和ArrayList不同,访问Hashtable元素时可以直接通过剑3名来获取具体值,同样,

      由于值类型是Object,所以当得到一个值时,也需要通过类型转换得到指定类型的

      对象。

    例:

      

//建立部门工程师员工集合
Hashtable eng = (SE) eng["000"];
MessageBox.Show(se23.SayHi());

    3.删除Hashtable的元素

      通过键(key),使用Remove()方法就可以删除Hashtable的元素。

      例:

      

eng.Remove("000");

    4.遍历Hashtable中的元素

      由于Hashtable不能通过索引访问,所以遍历一个Hashtable只能用(foreach)方法。

      

//foreach遍历
foreach(Object obj in has.Keys){ Console.WriteLine((string) obj); //foreach遍历出Hashtable中的键元素
} //foreach遍历
foreach(Object obj in has.Values){
SE seFor=(SE)obj;
Console.WriteLine(seFor.Name); //foreach遍历出Hashtable中的值元素
}

    

      泛型集合LIst<T>

          语法:

            List<T> 对象名 =new Lst<T>();

            <T>中的T可以对集合中的元素类型进行约束,T表明集合中的管理的元素类型,

          例:

          

//建立工程员的集合
List<SE> engineers=new List<SE>();
//初始化一个工程员工
SE se=new SE();
se.Name="王小毛";
se.Id=101;
se.Age=1; engineers.Add(se); Console.WriteLine(engineers.Count.ToString()+"个员工");

      

      List<T>和ArrayList的区别

List<T>                                                               ArrayList

     不同点:  对所保存元素进行类型约束,                              可以增加任何类型

         添加/读取值类型元素无须拆箱和装箱                     添加/读取值类型元素须拆箱和装箱

     相同点:       通过索引访问集合中的元素                 AND               添加和删除元素方法相同

    ------泛型集合 Dictionary<K,Y>

      Dictionary<k,y> 它具有泛型的全部特性,编译时检查类型约束,获取元素时无须类型转换,并且它存储数据的

      方式和Hashtable类似,也是通过key / value(键/值)对元素的保存。

    语法:

      Dictionary<k,y>对象名 =new Dictionary<k,y>();

       如:Dictionary<string,SE> engineers =new Dictionary<string,SE>();

   Dictionary<k,y>和Hashtable的对比

     Dictionary<k,y>                    Hashtable

 不同点:  对所保存元素进行类型约束,               可以增加任何类型

添加/读取值类型元素无须拆箱和装箱                     添加/读取值类型元素须拆箱和装箱

 相同点:  通过索引访问集合中的元素,添加和删除元素方法相同,遍历方法相同,通过key获取Value

S2:ArrayList的更多相关文章

  1. ArrayList等常见集合的排序问题

    对于ArrayList等常用的集合具体业务类,基本上都实现了Comparable接口,即可以用来比较装载的对象实体. 主要用Collections.sort方法对集合类中的对象进行排序 Collect ...

  2. Java API —— ArrayList类 & Vector类 & LinkList类

    1.ArrayList类     1)ArrayList类概述         · 底层数据结构是数组,查询快,增删慢         · 线程不安全,效率高     2)ArrayList案例   ...

  3. Android开发学习之路-DiffUtil使用教程

    谷歌最近更新了Support Library 24.2.0,而DiffUtil就是在这个版本添加的一个工具类. DiffUtil是一个查找集合变化的工具类,是搭配RecyclerView一起使用的,如 ...

  4. javaSE第十八天

    第十八天    192 1:Map(掌握)    192 (1)定义:    192 (2)Map和Collection的区别?    192 (3)Map接口功能概述(自己补齐)    192 A: ...

  5. Map集合案例

    1.获取字符串中每一个字母出现的次数. 比如"aababcabcdabcde",结果为:a(5)b(4)c(3)d(2)e(1) 分析如下: package mapexercise ...

  6. Java基础知识强化之集合框架笔记65:Map集合之集合多层嵌套的数据分析

    1. 为了更符合要求: 这次的数据就看成是学生对象. 传智播客 bj 北京校区 jc  基础班 林青霞 27     风清扬 30      jy  就业班   赵雅芝 28  武鑫 29 sh 上海 ...

  7. JavaSE学习总结第18天_集合框架4

      18.01 Map集合概述和特点 Map接口概述:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值 Map接口和Collection接口的不同 1.Map是双列的,Coll ...

  8. JAVA自学笔记18

    JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...

  9. 集合框架-Map集合

    * Map集合和Collection集合的区别? * Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的.可以把这个理解为:夫妻对 * Collection集合存储元素是单独出现的, ...

随机推荐

  1. Spring Boot2(六):使用Spring Boot整合AOP面向切面编程

    一.前言 众所周知,spring最核心的两个功能是aop和ioc,即面向切面和控制反转.本文会讲一讲SpringBoot如何使用AOP实现面向切面的过程原理. 二.何为aop ​ aop全称Aspec ...

  2. 消息驱动式微服务:Spring Cloud Stream & RabbitMQ

    1. 概述 在本文中,我们将向您介绍Spring Cloud Stream,这是一个用于构建消息驱动的微服务应用程序的框架,这些应用程序由一个常见的消息传递代理(如RabbitMQ.Apache Ka ...

  3. 02_javaSE面试题:单例设计模式

    还记得很多年前,面试就让在白板上写个单例模式,当时技术渣渣,还写的是class A.面试官还说,你就不能写个Singleton. 面试题 编程题:写一个Singleton示例 解析 什么是Single ...

  4. filebeat直连elasticsearch利用pipeline提取message中的字段

    这里使用filebeat直连elasticsearch的形式完成数据传输,由于没有logstash,所有对于原始数据的过滤略显尴尬(logstash的filter非常强大). 但是由于业务需求,还是需 ...

  5. TCP/IP网络协议

    OSI七层模型 OSI采用了分层的结构化技术,共分七层,物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. TCP/IP模型 OSI模型比较复杂且学术化,所以我们实际使用的TCP/IP模型, ...

  6. 大数据虚拟混算平台Moonbox配置指南

    一.环境准备 已安装Apache Spark 2.2.0(此版本仅支持Apache Spark 2.2.0, 其他Spark 版本后续会兼容) 已安装MySQL并启动,且开启远程访问 各安装节点已经配 ...

  7. JDBC连接mysql数据库操作

    一.创建所需对象,并进行初始化 Connection connection=null; Statement statement=null; PreparedStatement pst; ResultS ...

  8. Java设计模式学习笔记(二) 简单工厂模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...

  9. 多线程总结-同步之volatile关键字

    目录 1 案例引出可见性 2 案例引出原子性 1 案例引出可见性 代码解析:新起一个子线程执行m()方法,1秒后主线程将b置为false,子线程是否会停止执行死循环while(b){},打印" ...

  10. 【小家Spring】老项目迁移问题:@ImportResource导入的xml配置里的Bean能够使用@PropertySource导入的属性值吗?

    #### 每篇一句 > 大师都是偏执的,偏执才能产生力量,妥协是没有力量的.你对全世界妥协了你就是空气.所以若没有偏见,哪来的大师呢 #### 相关阅读 [[小家Spring]详解Propert ...