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

/*   // 集合     Stack         没有索引!"好比是死胡同"

  Stack s=new Stack ();       //特殊集合  堆!先进后出,后进先出

  s.Push("1");                //赋值内容  要用     “”  

s.Push("2");

s.Push("3");

s.Push("4");

s.Push("5");

// Console.WriteLine(s.[2]);      无法用索引[]

  foreach (string a in s)          //根据集合的构造,依次获取数据!//要想读取集合,要用foreach()

                { Console.WriteLine(a); }

Stack fuzhi = (Stack)s.Clone();  //复制Stack集合s

string tanchu = s.Pop().ToString();   //弹出并移除,集合里最后一个添加的字符。注意书写()格式!

string chakan= s.Peek().ToString();   //读取但是不移除,最后一个添加的元素,!

//   s.Clear();                       //表示清空集合!

Console.WriteLine(s.Count);     //返回int值,获取集合中元素   个数

//   Console.WriteLine(s[1]);             //此时无法读取集合中的元素。Stack没有索引

Console.ReadLine();*/

/* //   队列    queue   ,没有索引       “排队付账

Queue q = new Queue();  //只能先进先出,排队!

q.Enqueue(3);

q.Enqueue(4);

q.Enqueue(8);

q.Enqueue(2);

    // int b=q[2];                      queue   没有索引,不能用[]取集合中的元素!

foreach (int a in q)

{ Console.WriteLine(a); }

int zhi = int.Parse(q.Peek().ToString());         //只读取排队的第一个元素,不移除!

Console.WriteLine(zhi);

bool c = q.Contains(8);                           // 判断Queue集合中  是否  包含元素  8

Console.WriteLine(c);                             //要有输出,才能显示.    Ture   or   Flase

int yichu = int.Parse(q.Dequeue ().ToString());    //移除排队的第一个元素 "delect queue"

Console.WriteLine(yichu);                              //此时,这里输出是  3

Console.WriteLine("下面是新queue集合   h  : ");

Queue h = q;

foreach (int d in h)

{ Console.Write(d); }                              //此时已经移除了q中第一个元素    3

Console.ReadLine();   */

// Hashtable          哈希表包含 keys 和 values。没有索引!

Hashtable h=new Hashtable ();    //没有索引不能用 [] 引用,前面数字可以随便写

  h.Add(0,"王超");//向哈希表里添加元素!            h.Add(1,"范磊");                        h.Add(2,"王濛");           h.Add(3,"王雷雷");           h.Add(4,"田园青");           h.Add(5,"刘春丽");           h.Add(6,"孙琪");           h.Add(7,"孟享祥");           h.Add(8,"朱晓璞");

IDictionaryEnumerator ide = h.GetEnumerator();

while (ide.MoveNext())

{

Console.WriteLine(ide.Key+"  "+ide.Value);    //这样输出‘ 0    王超 ’,依次输出。 

}

ArrayList aa = new ArrayList();

foreach (int  a in h.Keys)    //注意读取表达格式。h.Keys / Values

{

Console.WriteLine("h集合中的:" + a);      //分开读取,好比两个  Stack  集合!先入后出!

aa.Add(a );

}

foreach (int f in aa)

{    Console.WriteLine("aa集合中的:" + f);     }  //这里是打印ArrayList集合  aa

ArrayList aaa = new ArrayList();

foreach (string b in h.Values )

{

Console.WriteLine("h集合中的:"+b);

aaa.Add(b);                        //输的内容是和Hashtable输出values内容一直

}

foreach (string  r in aaa)          //foreach列举时,一定要保证元素类型一致!string

{               Console.WriteLine("aaa集合中的:" + r);           }

h.Remove(4);                         //移除。   按照()内的keys值移除。这里移除的是(4,田园青)!

Console.WriteLine(h.Contains(66));    //    判断是否包含66的 keys 键 ,返回bool值。

int geshu = h.Count;                 //Hashtable   元素个数

Console.WriteLine("元素个数:"+geshu);

// h.Clear();                              //清空Hashtable  

Hashtable hh = h;

foreach (int f in hh.Keys)         //注意读取表达格式。    h.Keys / Values

{          Console.WriteLine(f);  //分开读取,好比两个  Stack  集合!先入后出!           }

foreach (string j in hh.Values)

{               Console.WriteLine(j);           }

Console.ReadLine();

时间: 2024-10-27 17:46:51

集合( 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方法

集合、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]);     

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())

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集合框架09——HashTable和源码分析

上一章我们学习了HashMap的源码,这一节我们来讨论一下HashTable,HashTable和HashMap在某种程度上是类似的.我们依然遵循以下步骤:先对HashTable有个整体的认识,然后学习它的源码,深入剖析HashTable. 1.HashTable简介 首先看一下HashTable的继承关系 java.lang.Object ? java.util.Dictionary<K, V> ? java.util.Hashtable<K, V> public class H

深入集合框架之Hashtable源码剖析

为了分析ConcurrentHashMap,决定先分析一下Hashtable,两者都是线程安全的,必然会有不同的区别,Hashtable和HashMap也有很大的区别. 我们先来看看Hashtable吧. 成员变量: //存储单链表表头的数组,和HashMap中类似 private transient Entry[] table; //Hashtable中实际元素的数量 private transient int count; //Hashtable的临界值(容量* 加载因子). private

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类型的数组,从一般

Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

java集合HashMap、HashTable、HashSet详解

一.Set和Map关系 Set代表集合元素无序,集合元素不可重复的集合,Map代表一种由多个key-value组成的集合,map集合是set集合的扩展只是名称不同,对应如下 二.HashMap的工作原理 HashMap基于hashing原理,通过put()和get()方法储存和获取对象. put()方法: 它调用键对象的hashCode()方法来计算hashcode值,系统根据hashcode值决定该元素在bucket位置.如果两个对象key的hashcode返回值相同,那他们的存储位置相同,如