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#_集合的使用、接口方法的实现;相关推荐

  1. 三菱q系列plc连接电脑步骤_三菱q系列plc cc-link通讯方法的实现-说明书.pdf

    www.PLC 三菱 Q 系列 PLC CC-LINK 通讯方法的实现 三菱Q系列PLC CC-Link通讯方法的实现 一一.. 概况 概况 一一.. 概况概况 N C D. L R O 二二.. 定 ...

  2. java集合框架的接口_Java集合框架——Set接口

    第三阶段 JAVA常见对象的学习 集合框架--Set接口 List集合的特点是有序的,可重复的,是不是存在这一种无序,且能保证元素唯一的集合呢?(HashSet )这就涉及到我们今天所要讲的Set集合 ...

  3. Java集合框架——List接口

    第三阶段 JAVA常见对象的学习 集合框架--List接口 image 按照集合框架的继承体系,我们先从Collection中的List接口开始学习 (一) 概述及功能(ArrayList演示) (1 ...

  4. 【Java集合】List接口常用方法及实现子类

    文章目录 List接口 > List 接口的常用方法 > List的三种遍历方式 > List 排序练习 ※ ArrayList 使用注意事项 ※ ArrayList 底层结构 ※ ...

  5. java 集合 接口_Java集合之Collection接口

    1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...

  6. python运行mcmc为何老出错_python中mcmc方法的实现

    MCMC方法在贝叶斯统计中运用很多,MIT发布的EMCEE是实现的比较好的.介绍页面在下面.源代码中examples里的代码可以帮助理解各种功能,特别是line.py 列出了最小二乘法,最大似然法和M ...

  7. c++ map iterator 获取key_Java集合框架——Map接口

    第三阶段 JAVA常见对象的学习 集合框架--Map集合 在实际需求中,我们常常会遇到这样的问题,在诸多的数据中,通过其编号来寻找某一些信息,从而进行查看或者修改,例如通过学号查询学生信息.今天我们所 ...

  8. 一文介绍备机重建各种方法的实现机制

    摘要:本文将介绍备机重建各种方法的实现机制,并结合应用场景分析,以及对新增参数的使用建议,以期获得最佳应用效果. 本文分享自华为云社区<先码再看,一文介绍备机重建各种方法的实现机制>,原文 ...

  9. arraylist插入数据_集合系列 List(二):ArrayList

    ArrayList 是 List 集合的列表经典实现,其底层采用定长数组实现,可以根据集合大小进行自动扩容. public class ArrayList extends AbstractList i ...

  10. 微信小程序实名认证接口_人脸核身接口整理

    一.微信小程序实名认证接口_人脸核身接口整理 开场一个字: 悲观.目前实名接口,人脸识别接口开放度不高."实名信息授权"已经回收. 二.人脸核身接口 1.使用条件 需要现申请通过才 ...

最新文章

  1. 为什么说特斯拉在自动驾驶上比Waymo更占优势
  2. 05-RARP: 逆地址解析协议
  3. HDU 1271整数对
  4. mac系统下git、mysql、nginx、php的环境搭建
  5. 0基础搭建Hadoop大数据处理-初识
  6. 知道python网课答案_Python程序设计答案
  7. GetLocalTime
  8. nginx 配置文件的匹配规则
  9. [转载] java 枚举Enum源码解析
  10. STM32-Systick滴答定时器-延时函数
  11. eclipse修改工作的目录顺序
  12. python随机森林变量重要性_随机森林如何评估特征重要性【机器学习面试题详解】...
  13. linux怎么db2命令窗口,Linux 命令行进入DB2
  14. Atitit 面试问题高难度问题 回答不上来的分析应对法 目录 1. 问题分析法 1 1.1. 判断是否超出自己范围的,直接回复超出自己范围了 1 1.2. 根据生活中的解决方法,大概说下解决模式
  15. msys2 pacman 安装 删除等常见命令汇总
  16. 数据库管理-第二十九期 记一次AFD环境的存储变更(20220803)
  17. zabbix短信网关使用了中国网建SMS短信通
  18. 我的世界服务器ess汉化文件,《我的世界》ess插件指令大全
  19. mysql 漏洞 wa_[漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  20. linux服务器创建wss服务 https+wss配置指南

热门文章

  1. Pr剪辑视频时,把视频变速,声音失真了怎么办,三个步骤完美搞定
  2. 按下()快捷键 可以迅速锁定计算机,电脑锁定的快捷键
  3. AI产品经理,如何面对数据挖掘?
  4. python光流法算法学习
  5. [转帖]知乎卢克文 中国的石油战略
  6. 熬夜人必看—iPhone屏幕亮度设置
  7. MX6Q WM8978 KSZ8863调试笔记
  8. 解决edge可以访问github,谷歌却无法访问的问题
  9. 贴片钽电容封装及规格和参数资料
  10. 深度思维(逻辑链的延长)