11、C#基础整理(特殊集合和哈希表)
特殊集合:队列、栈
一、栈Stack类:先进后出,没有索引
Stack ss = new Stack();
1、增加数据:push :将元素推入集合
ss.Push();
ss.Push();
ss.Push();
2、获取数据:
(1)peek返回位于stack顶部的对象但不移除(获取最后一个进入的元素的值)
Console.WriteLine(ss.Peek());//
(2)pop将元素一个个弹出集合(读取并移除)
Console.WriteLine(ss.Pop());//
Console.WriteLine(ss.Pop());//
3、其他操作
ToArray:返回数组类型,将栈中的元素转换成集合,然后放到数组里
object[] shuzu = (object[])ss.ToArray();
foreach(object a in shuzu)
{
Console.WriteLine(a);
}
二、队列Queue类:先进先出
1、定义方法:
Queue q = new Queue();
2、增加:
(1)Enqueue将元素放到队列末尾
q.Enqueue();
q.Enqueue();
q.Enqueue();
(2)Peek:返回开始处的对象但不移除
Console.WriteLine("Peek:"+q.Peek());//
3、获取:Dequeue移除并返回位于队列开始处的对象
Console.WriteLine("Dequeue:"+q.Dequeue());
哈希表Hashtable类
以键值成对读取数据,可以自己设置索引
Hashtable ht = new Hashtable();
ht.Add("a", "zhangsan");//一个任意类型的key + 一个任意类型的value值
ht.Add("b", "lisi");
ht.Add("c", "wangwu");
打印哈希表中元素个数的方法:
ICollection htkeys = ht.Keys;
Console.WriteLine(htkeys.Count);
读取key值
//copyto---复制到一个数组中
string[] ss1 = new string[];
htkeys.CopyTo(ss1,);
读取value值
ICollection htvalues = ht.Values;
string[] ss2 = new string[];
htvalues.CopyTo(ss2,);
成对读取:key和value都需要重新定义
IDictionaryEnumerator id = ht.GetEnumerator();
//object key1=id.Key;//获取一个值
//object value1 = id.Value;
//id.MoveNext();//往下移一个元素,返回布尔值,如果为false就不能再移动了
while(id.MoveNext())
{
object key2=id.Key;
Console.WriteLine(key2.ToString());
object value2 = id.Value;
Console.WriteLine(value2.ToString());
}
ht.Remove("b"); —— 根据键值移除该键
11、C#基础整理(特殊集合和哈希表)的更多相关文章
- 集合>哈希表类Hashtable和SortedList排序列表类
集合>哈希表类Hashtable Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法. 集合>哈希表类Hashtable>构造普通哈希表 代码 ...
- Python 字典和集合基于哈希表实现
哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组 ...
- C#部分---特殊集合:stack栈集合、queue队列集合、哈希表集合。
1.stack栈集合:又名 干草堆集合 栈集合 特点:(1)一个一个赋值 一个一个取值(2)先进后出实例化 初始化 Stack st = new Stack(); //添加元素用push st.Pus ...
- Stack集合 Queue队列集合 Hashtable哈希表
Stack集合 干草堆集合 栈集合 栈;stack,先进后出,一个一个赋值,一个一个取值,安装顺序来. 属性和方法 实例化 初始化 Stack st = new Stack(); 添加元素 个数 Co ...
- Java List集合和哈希表
List集合和Set集合,先来看List集合. List集合存储元素的特点: 1.有序(List集合中的元素有下标):存进去是什么样,取出来还是什么样 2.可重复 可以结合以下的简单代码来看一看. i ...
- 10、C#基础整理(集合)
集合 1.集合的引用 using System.Collections;//添加类 2.定义集合(ArrayList 或 Array) ArrayList arr = new ArrayList(); ...
- 黑马程序员_java基础笔记(06)...集合
—————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— JavaApi(其实就是java给我们提供的已经定义好的对象.工具对象:集合框架) ...
- JAVA基础整理-集合篇(一)
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...
- 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法
这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...
随机推荐
- notepad++之TextFX插件
一.安装 插件→Plugin Manager→Show Plugin Manager,Availble→选中TextFX→install 二.使用 1.去除重复行 TextFX—>TextFX ...
- Java 集合系列 05 Vector详细介绍(源码解析)和使用示例
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- ajax的data传参的两种方式
ajax的data传参的两种方式 本文为转载. 1.[javascript] view plain copy /** * 订单取消 * @return {Boolean} 处理是否成功 */ func ...
- java下载网络图片
import java.io.DataInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IO ...
- backbonejs mvc框架的增删查改实例
一:开发环境 coffeescript和nodejs需要先安装,没装网上自己查安装步骤. 代码编写环境及esp框架下载: esp框架下载地址:https://github.com/nonocast/e ...
- python的一点小常识
在Python中,有两种变长参数,分别是元组(非关键字参数)和字典(关键字参数),其参数以一个*开头表示任意长度的元组[tuple],可以接收连续一串参数,参数以两个*开头表示一个字典[dict],即 ...
- Skrollr.js -- 使用Skrollr创建视差滚动效果页面
使用方法: http://www.helloweba.com/view-blog-262.html http://www.uedsc.com/skrollr.htmlhttp://www.hello ...
- CSS 去除列表项li前面的小圆点
前言 在默认的情况下,浏览器会在<li>标签前面加上小圆点形成列表项,如下所示使用<ul> 项1 项2 项3 或者使用<ol> 项1 项2 项3 这在有时候确实给我 ...
- layer.js定制弹窗
<button>点击</button> <div class="order" id="order"> 定制 </div ...
- 利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理
Nginx的好处相信我不必多说了,它作为一个相当轻量级的开源Web 服务器以及反向代理服务器而深受欢迎.越来越多的公司已经对它产生兴趣,包括我们公司的许多部门,利用它进行负载均衡和资源管理,之前写过一 ...