集合类Array List HashTable实例操作练习
集合操作:ArrayList与HashTable的实战应用
本文将带您深入了解集合的常用操作,包括添加、遍历和移除,并重点关注ArrayList对值类型和引用类型的操作,以及HashTable的使用。想深入了解集合操作的朋友,不要错过这篇文章哦。
一、集合的常用操作
我们先来谈谈集合的添加、遍历和移除操作。在C中,这些操作是集合类最基本的功能。无论是哪种集合类型,这些操作都是必不可少的。
二、ArrayList对值类型的操作
ArrayList是一个可变长度的数组,类似于数组,但不需要规定长度。由于其参数类型为object,因此可以添加多种类型的参数,但在取出时需要进行类型转换。
示例代码如下:
```csharp
using System;
using System.Collections;
namespace ArrayListDemo {
class Program {
static void Main(string[] args) {
ArrayList arylist = new ArrayList();
// 添加元素
arylist.Add(1000);
arylist.Add("张三"); // 由于ArrayList的参数类型为object,所以可以添加多种类型的参数
arylist.Add(3000);
arylist.Add(0);
arylist.Add(5000); // 发生装箱操作,将值类型转换引用类型
int[] arr = { 1, 2, 3, 4 };
arylist.AddRange(arr); // AddRange的参数是实现了ICollections接口的对象
// 输出集合内容长度和容量
Console.WriteLine("集合内容长度:" + arylist.Count);
Console.WriteLine("集合容量:" + arylist.Capacity); // Capacity为集合的容量,是可变的,一般按2的倍数增长。
// 访问集合元素和遍历集合
int firstElement = Convert.ToInt32(arylist[0]); // 访问集合第一个元素,发生拆箱操作。注意索引越界问题。
Console.WriteLine("第一个元素:" + firstElement);
a、Console .Read(); 的使用
在编程中,我们经常会使用 Console .Read() 方法来暂停程序的运行,等待用户的输入。这种方法常用于调试阶段,让我们可以观察程序的运行过程。
对于ArrayList对引用类型的操作,我们首先要定义一个Student类,包含姓名和年龄两个属性。然后,我们创建一个ArrayList对象,并向其中添加多个Student对象。我们可以使用Add方法添加对象,也可以使用AddRange方法一次性添加多个对象。
接下来,我们演示了如何通过索引、移除和遍历来操作ArrayList中的Student对象。需要注意的是,由于ArrayList存储的是对象引用,因此移除或查找对象时,我们需要通过对象的引用而非值来进行操作。遍历ArrayList时,我们需要将对象从ArrayList中取出并进行强制类型转换。
b、ArrayList与HashTable的对比
除了ArrayList,我们还可以使用HashTable来存储键值对。HashTable类似于一个字典,可以根据键快速找到对应的值。在这个例子中,我们再次使用Student类,将学生的姓名作为键,学生对象作为值存储在HashTable中。
HashTable提供了许多有用的方法,如Add、Remove、ContainsKey等。由于HashTable是键值对的形式,因此我们可以快速地通过键来查找或移除值。HashTable还可以判断是否包含某个键。
c、练习
接下来是一个关于ArrayList的练习。我们有两个ArrayList,分别包含一些元素。我们需要将这两个ArrayList中的元素去除重复项并合并成一个。思路是遍历其中一个ArrayList的元素,与另一个ArrayList中的元素进行比较,如果不存在相同的元素,则将其添加到结果ArrayList中。
我们还需生成10个1-100之间的不重复偶数并存储到ArrayList中。为了实现这一点,我们可以使用Random类生成随机数,并通过Contains方法检查随机数是否已经存在于ArrayList中。如果不存在,则将其添加到ArrayList中。
需要注意的是,直接运行程序时可能会因为随机数生成的不确定性导致观察到的结果与单步调试时的结果不同。这是因为随机数的生成是随机的,每次运行程序时生成的随机数序列可能不同。在观察结果时需要注意这一点。
假设我们有一个由空格分隔的整数字符串,比如 "2 7 8 3 22 9",我们的任务是将这个字符串中的奇数放在左侧,偶数放在右侧,然后打印出来。这听起来像是一个有趣的挑战,让我们开始吧!
我们将这个字符串分割成一个个的整数,然后分辨出哪些是奇数,哪些是偶数。我们把奇数放在一个叫做 ary3 的列表里,把偶数放在另一个叫做 ary4 的列表里。这个过程就像是在整理一堆扑克牌,奇数牌和偶数牌分别放在不同的地方。
网络安全培训
- 集合类Array List HashTable实例操作练习
- ASP中实现定时发送邮件的代码分享
- 原生js实现针对Dom节点的CRUD操作示例
- vue服务端渲染操作简单入门实例分析
- 如何在CentOS中安装PHP7.4的方法步骤
- asp.net 细说文件读写操作(读写锁)
- 东之伊甸主题曲
- PHP迭代器的内部执行过程详解
- PHP基于IMAP收取邮件的方法示例
- Ajax实现无刷新三联动下拉框
- php中二维数组排序问题方法详解
- Javascript技术栈中的四种依赖注入小结
- 基于Vue2.X的路由和钩子函数详解
- vue结合axios与后端进行ajax交互的方法
- ES6中非常实用的新特性介绍
- 学习使用bootstrap3栅格系统