lwj_C#_集合的使用、接口方法的实现;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
namespace homework
{
//枚举能不能做//枚举如何实现
public class MyList <T>:IEnumerable,IEnumerator{
//创建集合字段要初始化
public List<T> list = new List<T>();
private int currentIndex = 0;
public IEnumerator GetEnumerator()
{
return this;
}
//先走MoveNext 再走Current
//移位
public bool MoveNext()
{
if (currentIndex<list.Count)
{
return true;
}
Reset();
return false;
}
public object Current
{
get
{
Object obj = list[currentIndex];
currentIndex++;
return obj;
}
}
//重置 是用来重置循环打印次数;
public void Reset()
{
currentIndex = 0;
}
}
class MainClass
{
public static void Main(string[] args)
{
#region // A类 //第一题: 哈希表和字典存取数据所消耗的时间对比
//题目
//解题思路
//1.分别创建哈希表与字典
//2.分别添加对应的数据使用stopwatch统计耗时
//3.分别取对应的数据使用stopwatch统计耗时
//添加数据比较;
Hashtable hash = new Hashtable();
Stopwatch stop_1 = new Stopwatch();
stop_1.Start();
hash.Add("jiangkai", 10);
stop_1.Stop();
Console.WriteLine("哈希表的时间为:" + stop_1.Elapsed);
Dictionary<string, int> dic = new Dictionary<string, int>();
Stopwatch stop_2 = new Stopwatch();
stop_2.Start();
dic.Add("jiangkai", 10);
stop_2.Stop();
Console.WriteLine("字典的时间为:" + stop_2.Elapsed);
//取数据比较;
Stopwatch stop_3 = new Stopwatch();
stop_3.Start();
hash.Remove("jiangkai");
stop_3.Stop();
Console.WriteLine("哈希表的时间为:" + stop_3.Elapsed);
Stopwatch stop_4 = new Stopwatch();
stop_4.Start();
dic.Remove("jiangklai");
stop_4.Stop();
Console.WriteLine("字典的时间为:" + stop_4.Elapsed);
#endregion
#region //第二题: 查询MSDN文档,练习ArrayList集合下面的常用API练习一遍.然后思考ArrayList能用于开发中(或者你接触过的游戏中)的那些地方? 至少写出两个, 并能分析出其实现方式.
ArrayList arr = new ArrayList();
arr.Add("lwj");
arr.Add(12);
arr.Add('a');
foreach (var item in arr)
{
Console.Write(item + " ");
}
//指定下标插入元素;
arr.Insert(1, "niubi");
Console.WriteLine("");
foreach (var item in arr)
{
Console.Write(item + " ");
}
//是否包含一个指定元素
bool isexit = arr.Contains(12);
Console.WriteLine("\n" + isexit);
//逆转
arr.Reverse();
foreach (var item in arr)
{
Console.Write(item + " ");
}
//移除指定下标元素;
arr.RemoveAt(2);
Console.WriteLine("");
foreach (var item in arr)
{
Console.Write(item + " ");
}
//移除指定元素
arr.Remove("lwj");
Console.WriteLine("");
foreach (var item in arr)
{
Console.Write(item + " ");
}
//移除所有元素
arr.Clear();
Console.WriteLine("");
foreach (var item in arr)
{
Console.Write(item + " ");
}
//ArrayList能用于:1、游戏中的技能BUFF移除、添加等操作; 2、游戏物品栏的添加移除操作;
#endregion
//解题思路
//1.自定义类拥有集合的作用,意味着类成员至少有一个为系统提供的集合
//2.利用系统集合的方法,使用本类进行二次封装
//3.类支持foreach循环,必须实现IEnumerable接口
//4.利用里氏替换原则替换父类实现IEnumerator
//5.创建测试类
//6.利用自定类内部的索引器添加测试类对象
//7.测试foreach循环
int[] array = { 12, 232, 343, 2322 };
MyList<int> mylist = new MyList<int>();
mylist.list = new List<int>(array);
foreach (var item in mylist)
{
Console.WriteLine(item);
}
}
}
}
lwj_C#_集合的使用、接口方法的实现;相关推荐
- 三菱q系列plc连接电脑步骤_三菱q系列plc cc-link通讯方法的实现-说明书.pdf
www.PLC 三菱 Q 系列 PLC CC-LINK 通讯方法的实现 三菱Q系列PLC CC-Link通讯方法的实现 一一.. 概况 概况 一一.. 概况概况 N C D. L R O 二二.. 定 ...
- java集合框架的接口_Java集合框架——Set接口
第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...
- Java集合框架——List接口
第三阶段 JAVA常见对象的学习 集合框架--List接口 image 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1 ...
- 【Java集合】List接口常用方法及实现子类
文章目录 List接口 > List 接口的常用方法 > List的三种遍历方式 > List 排序练习 ※ ArrayList 使用注意事项 ※ ArrayList 底层结构 ※ ...
- java 集合 接口_Java集合之Collection接口
1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...
- python运行mcmc为何老出错_python中mcmc方法的实现
MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...
- c++ map iterator 获取key_Java集合框架——Map接口
第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...
- 一文介绍备机重建各种方法的实现机制
摘要:本文将介绍备机重建各种方法的实现机制,并结合应用场景分析,以及对新增参数的使用建议,以期获得最佳应用效果. 本文分享自华为云社区<先码再看,一文介绍备机重建各种方法的实现机制>,原文 ...
- arraylist插入数据_集合系列 List(二):ArrayList
ArrayList 是 List 集合的列表经典实现,其底层采用定长数组实现,可以根据集合大小进行自动扩容. public class ArrayList extends AbstractList i ...
- 微信小程序实名认证接口_人脸核身接口整理
一.微信小程序实名认证接口_人脸核身接口整理 开场一个字: 悲观.目前实名接口,人脸识别接口开放度不高."实名信息授权"已经回收. 二.人脸核身接口 1.使用条件 需要现申请通过才 ...
最新文章
- 阿里云 Redis 开发规范
- Mac下安装SVN for Eclipse插件
- DroidPilot 测试脚本详解 (一)
- Nginx 优化详解
- 万豪旅享家官方商城携手神策数据,数字化礼遇更高质量的用户体验
- 五、Hive架构,安装和基本使用
- android aar项目_介绍如何调试Xamarin.Android的binding项目
- 【数论】YY的GCD(P2257)
- access重复数据累计_小程序·云开发之数据库自动备份丨云开发101
- 土木工程--钢筋下料软件(续)
- 系统架构图 云架构案例
- Unicode中的数学符号
- 【大数据技术干货】(还不懂数仓,数据中心?看这一篇就够了!)在实际的开发生产中,让你了解企业级数据中心整体架构(DB+ETL+ODS+DW+DM)的各个层次的过程详解,数据联系及功能区分
- 若依前后端分离密码修改成功,登录提示用户名或密码不正确。
- mysql数据库安全加固
- Linux——chmod命令用法
- 人工智能 java 坦克机器人系列: 强化学习_人工智能 Java 坦克机器人系列: 强化学习...
- 四年开发,最重要的是战略,把目标告诉一个你信赖的人,让他保管
- 悬置位移matlab,Matlab讨论区 - 声振论坛 - 振动,动力学,声学,信号处理,故障诊断 - Powered by Discuz!...
- 机器学习基础:ROC曲线与AUC计算详解