S2:ArrayList
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的更多相关文章
- ArrayList等常见集合的排序问题
对于ArrayList等常用的集合具体业务类,基本上都实现了Comparable接口,即可以用来比较装载的对象实体. 主要用Collections.sort方法对集合类中的对象进行排序 Collect ...
- Java API —— ArrayList类 & Vector类 & LinkList类
1.ArrayList类 1)ArrayList类概述 · 底层数据结构是数组,查询快,增删慢 · 线程不安全,效率高 2)ArrayList案例 ...
- Android开发学习之路-DiffUtil使用教程
谷歌最近更新了Support Library 24.2.0,而DiffUtil就是在这个版本添加的一个工具类. DiffUtil是一个查找集合变化的工具类,是搭配RecyclerView一起使用的,如 ...
- javaSE第十八天
第十八天 192 1:Map(掌握) 192 (1)定义: 192 (2)Map和Collection的区别? 192 (3)Map接口功能概述(自己补齐) 192 A: ...
- Map集合案例
1.获取字符串中每一个字母出现的次数. 比如"aababcabcdabcde",结果为:a(5)b(4)c(3)d(2)e(1) 分析如下: package mapexercise ...
- Java基础知识强化之集合框架笔记65:Map集合之集合多层嵌套的数据分析
1. 为了更符合要求: 这次的数据就看成是学生对象. 传智播客 bj 北京校区 jc 基础班 林青霞 27 风清扬 30 jy 就业班 赵雅芝 28 武鑫 29 sh 上海 ...
- JavaSE学习总结第18天_集合框架4
18.01 Map集合概述和特点 Map接口概述:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值 Map接口和Collection接口的不同 1.Map是双列的,Coll ...
- JAVA自学笔记18
JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...
- 集合框架-Map集合
* Map集合和Collection集合的区别? * Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的.可以把这个理解为:夫妻对 * Collection集合存储元素是单独出现的, ...
随机推荐
- yarn or npm 版本固化如何选择
前言 作为前端开发者,npm这个包管理工具的重要性显而易见.优点不再表述,但一些缺点是为使用者诟病比较多的:速度慢.版本控制.下面主要讨论下npm的版本固化问题,即lock文件. npm语义化版本管理 ...
- kafka入门(一)简介
1 什么是kafk Apache kafka是消息中间件的一种,在开始学习之前,先简单的解释一下什么是消息中间件. 举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就 ...
- Z点餐系统项目下期改进计划
随着计算机应用范围的日益广泛深人,应用软件的规模及复杂程度也日趋大型化.复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化.工厂流水 问题: (一)缺乏项目管理系统培训.项 ...
- springboot+druid连接池及监控配置
1. 问题描述 阿里巴巴的数据库连接池Druid在效率与稳定性都很高,被很多开发团队使用,并且自带的Druid监控也很好用,本章简单介绍下springboot+druid配置连接池及监控. 2. 解决 ...
- 5.Ray-Handler之ToReadHandler编写
如图右上角所示,Ray中有两类Handler(SubHandler和PartSubHandler),在使用中,SubHandler派生Actor的CoreHandler,PartSubHandler派 ...
- WinForm控件之【LinkLabel】
基本介绍 超链接标签控件,随处可见应用极为广泛,一般用作触发指定链接跳转指定页面等操作. 常设置属性.事件 ActiveLinkColor:用户单击超链接时超链接显示的颜色: LinkColor:超链 ...
- Go语言设计模式汇总
目录 设计模式背景和起源 设计模式是什么 Go语言模式分类 个人观点 Go语言从面世就受到了业界的普遍关注,随着区块链的火热Go语言的地位也急速蹿升,为了让读者对设计模式在Go语言中有一个初步的了解和 ...
- MyBatis OGNL表达式用法
From<MyBatis从入门到精通> <!-- 4.7 OGNL用法 MyBatis常用的OGNL表达式: e1 or e2: e1 and e2 e1 == e2; e1 != ...
- Java编程思想:内部类基础部分
public class Test { public static void main(String[] args) { // Parcel1.test(); // Parcel2.test(); / ...
- druid一步到位
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 在配置application.yml文件的时候,原本写的是MySQL的连 ...