10-23C#基础--特殊集合(stack、queue、hashtable)

特殊集合一:stack集合--堆集合

1、定义:堆集合是集合中一种特殊的类,在Stack中也有许多方法和属性,下面一一列举:

命名格式:Stack ss=new Stack();

2、如何添加数据:push(),推,将需要的数据依次输入,一个推一个,进入Stack集合里;

ss.Push("i");在添加时,括号中需要加双引号,无论是int型还是string型;

3、如何读取数据:

运用foreach循环:

foreach(string s in ss)//foreach根据集合构造,依次获取数据

{

Console.Write(s);

}

4、在Stack集合里没有索引;

Console.WriteLine(ss[0]);写中括号是不行的,堆集合没有索引。

5、属性:统计元素个数

Console.WriteLine(ss.Count);//count属性,获取元素个数

6、弹出移除数据

7、弹出不移除数据

string tanchu = ss.Peek().ToString();//只获取最后进去的那个数据值,不移除

8、清空集合

ss.Clear();

9、复制集合

ss.Clone();

特殊集合二、Queue--队列集合

1、定义:queue,排队,列队;

2、如何赋值:一个一个赋值

3、count属性,计算元素的个数

4、读取第一个元素,并从集合移除

5、读取第一个元素,不移除(仍存在集合中)

6、

特殊集合三、HashTable

1、定义://哈希表集合,一个位置包含两个值,一个key,一个values;

Hashtable ht = new Hashtable();

2、如何赋值:需要自己加索引,加键,在读哈希表时,键值和value值要分开读,

ht.Add(0, "王超");

ht.Add(1, "范范");

ht.Add(2, "濛哥");

ht.Add(3, "雷子");

ht.Add(4, "丽丽");

ht.Add(5, "祥祥");

ht.Add(6, "孙琪");

3、  如何取值:

foreach (int i in ht.Keys)

{

Console.WriteLine(i);//keys代表键的一个集合,读出的是倒着读出来,先进后出

}

foreach (string s in ht.Values)

{

Console.WriteLine(s);//values代表value的一个集合

}

Console.ReadLine();

4、判断是否包含某个键

Console.WriteLine( ht.Contains(4));//判断是否包含某个键,

5、count属性,统计个数

int geshu = ht.Count;

Console.WriteLine(geshu );

6、清空数据

ht.Clear();

7、移除数据

//remove移除,移除的是键的元素

// ht.Remove(4);//按照括号内的key值,移除key值和value

8、  // ht.Add(4, "丽丽");//键值(相当于索引),不能重复添加key;

9、  枚举类型:如何将key值和value值一块输出

IDictionaryEnumerator ide = ht.GetEnumerator();

while (ide.MoveNext())//返回bool值

{

Console.WriteLine(ide.Key+" "+ide.Value);

}

Console.ReadLine();

时间: 2024-10-10 04:08:23

10-23C#基础--特殊集合(stack、queue、hashtable)的相关文章

特殊集合 Stack Queue Hashtable

//Stack    干草堆集合    栈集合      先进后出 Stack st = new Stack(); //实例化 初始化 st.Push(2); //添加元素 st.Push(6); st.Push(9); st.Push(5); st.Push(1); Console.WriteLine(st.Count); Console.WriteLine(st.Peek()); //peek方法,只查看不弹出 Console.WriteLine(st.Pop()); //只要使用pop方法

集合( Stack / Queue / Hashtable 都没有索引)

/*   // 集合     Stack         没有索引!"好比是死胡同"   Stack s=new Stack ();       //特殊集合  堆!先进后出,后进先出!   s.Push("1");                //赋值内容  要用     “”   s.Push("2"); s.Push("3"); s.Push("4"); s.Push("5");

15-07-10 Stack集合、queue集合、hashtable集合

1.栈:Stack,先进后出,一个一个赋值,一个一个取值,按顺序. .count           取集合内元素的个数 .push()         将元素一个一个推入集合中//stack集合存入用.push() .pop()           将元素一个个弹出集合 .clear()         清空集合 Stack s = new Stack();//先存入的后取出 s.Push(1); s.Push(2); s.Push(3); Console.WriteLine(s.Pop())

集合、ArrayList 集合。Stack集合。Queue集合。以及Hashtable集合

arrayList 首先复制Colections加  : 创建arrayList ar =new arrayList(); //ArrayList al=new ArrayList();            //实例化初始化            //al.Add(4);            //真的添加            //al[0]=3;            //al[0]这种赋值方式只是修改            //Console.WriteLine(al[0]);     

Stack集合、queue集合、hashtable集合

1.栈:Stack,先进后出,一个一个赋值,一个一个取值,按顺序. .count           取集合内元素的个数 .push()         将元素一个一个推入集合中//stack集合存入用.push() .pop()           将元素一个个弹出集合 .clear()         清空集合 Stack s = new Stack();//先存入的后取出 s.Push(1); s.Push(2); s.Push(3); Console.WriteLine(s.Pop())

黑马程序员——【Java基础】——集合框架

一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是用于存储对象的. (三)数组和集合类同是容器,有何不同? .数组长度是固定的:集合长度是可变的. 2.数组中可以存储基本数据类型,集合只能存储对象. (四)集合类的特点 集合可以存储不同类型的对象.集合只用于存储对象,集合长度是可变的. (五)为什么会出现这么多容器? 因为每一个容器对数据的存储方式都有不同,这个存储方式称

C#中集合ArrayList与Hashtable的使用

C#中集合ArrayList与Hashtable的使用 http://blog.csdn.net/linukey/article/details/42506819 ArrayList: 一. 注意事项: 1.可以指定ArrayList集合的初始大小 var list = new ArrayList(10);//容纳10个元素 若不指定大小,则默认大小为0,添加一个后为4,然后以倍数递增. 2.ArrayList是Array的复杂版本,ArrayList内部封装了一个Object类型的数组,从一般

c#基础 特殊集合

一. 栈: Stank,先进先出,一个一个赋值,一个一个取值,按照顺序. .count   取集合内元素的个数 .push    将元素一个一个推入集合 .pop      将元素一个一个弹出集合 .peek     查看集合中的一个元素 .clear     清空集合 Stack st=new Stack();干草堆集合初始化 st.Push(0);推入 st.Pop();弹出 st.Clear();清空 二. 队列集合:Queue,先进先出,一个一个赋值,一个一个取值,按照顺序进行. .co

JDK的弃儿:Vector、Stack、Hashtable、Enumeration

随着JDK的发展,一些设计缺陷或者性能不足的类库难免会被淘汰,最常见的就是Vector.Stack.HashTable和Enumeration了. Vector(@since 1.0) 首先看看Vector的UML类图,可以看出,他是一个与ArrayList有着相同继承体系的类,大致功能也和ArrayList一样.Vector与ArrayList最大的不同点在于它是线程安全的,因为其内部几乎所有方法都用了synchronized来修饰.但是,Synchronized是重量级锁,读写操作也没有做适