Chapter 5. 集合---(ArrayList、Stack、queue、哈希表)
2016-05-11 12:00
411 查看
//ArrayList集合 //定义: ArrayList al = new ArrayList(); //添加元素:追加到集合的最后 al.Add(1); al.Add(2); al.Add(3); al.Add(4); al.Add(5); Console.WriteLine("第一个位置的元素为:"+al[0]); //插入元素 al.Insert(0,9); //在索引0的位置插入9,后边数据依次靠后 Console.WriteLine("插入9后,第一个位置的元素为:"+al[0]); //移除元素 al.Remove(4); //移除第一次出现的这个元素 Console.WriteLine("移除元素4后的集合:"); foreach(object a in al) { Console.WriteLine(a); } al.RemoveAt(4); //移除这个索引值的元素 Console.WriteLine("移除索引值为4后的集合:"); foreach (object a in al) { Console.WriteLine(a); } //获取集合元素个数 Console.WriteLine("集合中元素个数为:"+al.Count); //判断是否有括号内的数据,返回的是bool值(True或者False) bool b = al.Contains(3); Console.WriteLine("集合内是否有元素3:"+b); //自动进行排序,升序 al.Sort(); Console.WriteLine("升序排列后的集合:"); foreach (object a in al) { Console.WriteLine(a); } //将集合翻转,一般是进行Sort排序之后翻转,变成从大到小 al.Reverse(); Console.WriteLine("翻转后的集合:"); foreach (object a in al) { Console.WriteLine(a); } //克隆一个一模一样的集合 ArrayList aal = new ArrayList(); aal = (ArrayList)al.Clone(); Console.WriteLine("克隆后的集合:"); foreach (object a in aal) { Console.WriteLine(a); } //将集合清空 al.Clear(); Console.ReadLine();
![](https://images2015.cnblogs.com/blog/894738/201605/894738-20160511114829843-17378208.jpg)
// Stack集合:栈集合,先进后出,逐个取值逐个赋值 // 定义方式: Stack aa = new Stack(); // .push:向集合内推送元素 aa.Push(1); aa.Push(2); aa.Push(3); aa.Push(4); aa.Push(5); // .count:获取集合内元素个数 Console.WriteLine("集合内元素个数:"+aa.Count); // 弹出元素,集合中便没有这个元素 Console.WriteLine("弹出元素,并移除:"+aa.Pop()); // 拿出看看,并不进行移除 Console.WriteLine("弹出元素,不移除:"+aa.Peek()); // 遍历集合 Console.WriteLine("遍历集合:"); foreach (object aaa in aa) { Console.WriteLine(aaa); } //克隆 Stack bb = new Stack(); bb =(Stack)aa.Clone(); Console.WriteLine("克隆后的集合:"); foreach(object aaa in bb) { Console.WriteLine(aaa); } //清空集合 aa.Clear(); Console.ReadLine();
![](https://images2015.cnblogs.com/blog/894738/201605/894738-20160511115030921-349679474.png)
// Queue队列集合:先进先出,逐个赋值,逐个取值 //定义方式 Queue que=new Queue(); //添加数据 que.Enqueue(1); que.Enqueue(2); que.Enqueue(3); que.Enqueue(4); que.Enqueue(5); que.Enqueue(6); //移除一个数据 Console.WriteLine("移除第一个数据:"+que.Dequeue()); //拿出数据 Console.WriteLine("只拿出第一个数据不移除:"+que.Peek()); //遍历集合 Console.WriteLine("遍历集合:"); foreach(object a in que) { Console.WriteLine(a); } Console.ReadLine();
![](https://images2015.cnblogs.com/blog/894738/201605/894738-20160511115139046-1621142139.png)
//哈希集合:先进后出,逐个赋值,一起取值 Hashtable ht = new Hashtable(); ht.Add(0, "张三"); ht.Add(1, "李四"); ht.Add(2, "王五"); ht.Add(3, "赵六"); ht.Add(4, "冯七"); //移除数据 ht.Remove(2); //判断是否包含 Console.WriteLine("是否包含2:"+ht.Contains(2)); //遍历集合:倒序打印,类似stack集合 Console.WriteLine("遍历集合,key值:"); foreach (int i in ht.Keys) { Console.WriteLine(i); } Console.WriteLine("遍历集合,value值:"); foreach(string s in ht.Values) { Console.WriteLine(s); } Console.ReadLine(); //利用枚举类型读取集合中的所有数据,像表格一样排列 IDictionaryEnumerator id = ht.GetEnumerator(); //获取到里边每个key值value值 //循环打印:移动到下一个key值,value值 Console.WriteLine("遍历集合,枚举:"); while (id.MoveNext()) { Console.WriteLine(id.Key+"\t"+id.Value); } Console.ReadLine();
![](https://images2015.cnblogs.com/blog/894738/201605/894738-20160511115252015-1714409217.png)
相关文章推荐
- 关于在easyui中添加tab的时候不能执行href页面中的js的说明
- requestAnimationFrame,Web中写动画的另一种选择
- When to use dequeueReusableCellWithIdentifier vs dequeueReusableCellWithIdentifier: forIndexPath
- 从自建页面跳转到标准订单或者BP页面的例子
- 建造者模式(Builder Pattern)
- Windows窗体与控件
- report builder 报表表头固定
- Java按Value排序Map
- UITableViewCell的简单使用
- UITableViewcell实现微博界面
- java中String、StringBuffer、StringBuilder的区别
- [一句秒懂]图片拉伸技巧,纯代码书写UIImage分类搞定
- Processing of multipart/form-data request failed. Read timed out
- Named query not found: (包扫描的问题)
- UE4推荐教程
- [Baltic2014]sequence 解题报告
- A Beginner's Guide To LVM [3/9]
- A Beginner's Guide To LVM [2/9]
- A Beginner's Guide To LVM [1/9]
- poj2081 Recaman's Sequence