哎呀我去,昨天搞那个全排列和寻路算法搞得我脑袋都大了,忘写博了,唉 ,早起补上。。。。。。。

今天的东西挺多,但没什么难度。

集合:创建和管理相关对象组的第⼆种⽅式就是:创建对象集合。
   集合提供⼀种灵活的处理⽅法。 与数组不同,处理的对
   象组可根据程序更改的需要动态地增⻓和收缩。 对于某
   些集合,您可以为放⼊该集合的任何对象分配⼀个“键”,
   以便使⽤该键快速检索对象。
   注意: 集合是类,因此必须声明新集合后,才能向该集合
   中添加元素。集合分为两种类型: ⾮泛型集合和泛型集合。
   使⽤⾮泛型集合的 需引⼊: System.Collections命名空间。
   使⽤泛型集合需引⼊: System.Collections.Generic命名
   空间。

stack:Stack称为栈,栈和队列⾮常相似,只不过队列是先进
   先出,⽽栈中的数据添加和移除都在⼀端进⾏,遵守栈
   中的数据则后进先出。 Stack类实现了ICollection和
   IEnumerable接⼝。 定义如下:

Stack stack = new Stack();
Stack<int> stackInt = new Stack<int>();

    Push() 将对象插⼊Stack的顶部。(⼊栈操作)
    Pop() 移除并返回Stack顶部的对象 。(出栈操作)
    Peek() 返回位于Stack顶部的对象,但不移除。
    Contains() 确定某元素是否在Stack中。
    Clear() 从Stack中移除所有对象。
    Count 获取Stack中包含的元素。

  1.后进先出( LIFO)的⼀种数据结构。
  2.随着向 Stack 中添加元素,容量通过重新分配按需⾃动
  增加。
  3.Stack 接受 null 作为有效值并且允许重复的元素。

Queue:Queue称为队列,队列是这样⼀种数据结构,数据有列
    表的⼀端插⼊,并由列表的另⼀端移除。就像单⾏道,
    只能从⼀段进,从⼀端出。 Queue类同样也是实现了
    ICollection和IEnumerable接⼝。

Queue queue = new Queue();
Queue<string> queueString = new Queue<string>();

    Enqueue() 将对象添加到 Queue 的结尾处。
    Dequeue() 移除并返回位于 Queue 开始处的对象。
    Peek() 返回位于 Queue 开始处的对象但不将其移除。
    Clear() 从 Queue 中移除所有对象。
    Contains() 确定某元素是否在 Queue 中。
    Count 获取 Queue 中包含的元素数。

  1.先进先出( FIFO)的⼀种数据结构。
  2.随着向Queue 中添加元素,容量通过重新分配按需⾃动增加。 可通过调⽤ TrimToSize 来减少容量。
  3.Stack 接受 null 作为有效值并且允许重复的元素。
  4.在AI寻路算法中经常⽤的Queue。

Dictionary:Dictionary<TKey, TValue> 类称为字典类,表⽰键和
      值的集合。其中TKey表⽰字典中的类型, Tvalue表⽰
      字典中的值类型。 Dictionary类实现了ICollection、
      IEnumerable、 IDictionary·接⼝。 定义如下:

Dictionary<string, int> dic = new Dictionary<string, int>();

    Add() 将指定的键和值添加到字典中。
    TryGetValue() 获取与指定的键相关联的值。
    Clear() 从 Dictionary<TKey, TValue> 中移除所有的键和值。
    Remove() 从 Dictionary<TKey, TValue> 中移除所指定的键的值。
    ContainsKey() 确定 Dictionary<TKey, TValue> 是否包含指定的键。
    ContainsValue() 确定 Dictionary<TKey, TValue> 是否包含特定值。
    Count 获取Stack中包含的元素。
    Keys 获取包含 Dictionary<TKey, TValue> 中的键的集合。
    Values 获取包含 Dictionary<TKey, TValue> 中的值的集合。

  1.字典是⼀个泛型集合。
  2.TKey必须唯⼀。
  3.Value可以是变量,也可以是对象。

ArrayList:是⼀个特殊的数组。通过添加和删除元素,就可
    以动态改变数组的⻓度。 ArrayList并不是强类型, ArrayList
    可能并不总是提供特定任务的最佳性能。 ArrayList类实现了
    IList、 ICollection和IEnumerable接⼝。 定义如下:

ArrayList arraylist = new ArrayList();

    Add() 将对象添加到 ArrayList 的结尾处。
    Insert() 将元素插⼊ ArrayList 的指定索引处。
    Remove() 从 ArrayList 中移除特定对象的第⼀个匹配项。
    RemoveAt() 移除 ArrayList 的指定索引处的元素。
    Reverse() 将整个 ArrayList 中元素的顺序反转。
    Contains() 确定某元素是否在ArrayList中。
    Clear() 从 ArrayList 中移除所有元素。
    Count 获取Stack中包含的元素。

  1.⽀持⾃动改变⼤⼩的功能。
  2.可以灵活的插⼊元素、删除元素、访问元素。
  3.不是强类型,速度跟数组⽐起来要慢。

List<T>类:表⽰可通过索引访问的对象的强类型列表。 提供⽤
    于对列表进⾏搜索、排序和操作的⽅法。 List<T>是ArrayList
    类的泛型等效类,该类使⽤⼤⼩可按需动态增加的数组实现
    IList<T>泛型接⼝。 List<T>类同样也是实现了ICollection、
    IEnumerable和IList接⼝。 定义如下:

List<int> list = new List<int>();

    Add() 将对象添加到 List<T> 的结尾处。
    Insert() 将元素插⼊ List<T> 的指定索引处。
    Remove() 从 List<T> 中移除特定对象的第⼀个匹配项。
    RemoveAt() 从 List<T> 中移除特定对象的第⼀个匹配项。
    RemoveAll() 移除与指定的谓词所定义的条件相匹配的所有元素。
    Reverse() 将整个 List<T> 中元素的顺序反转。
    IndexOf(T) 搜索指定的对象,并返回整个 List<T> 中第⼀个匹配项
    Sort() 的从零开始的索引。 使⽤默认⽐较器对整个 List<T> 中的元素进⾏排序。
    Contains() 确定某元素是否在ArrayList中。
    Clear() 从 List<T>中移除所有元素。
    Count 获取Stack中包含的元素。

  1.于ArrayList相⽐, List<T>好并且是类型安全的。
  2. 若List<T> 类的类型 T 使⽤是完全相同的。 但是,如果要考虑实现和装箱问题。

       在一个有限平面区域上(1000 * 1000)随机生成有序的n个点(用结构体表示点),将其保存在集合中,并排序public struct Point :IComparable{public int x;public int y;public Point(int x, int y){this.x = x;this.y = y;}public int CompareTo (object value){Point p = (Point) value;if (this.x > p.x) {return 1;}else if (this.x == p.x) {return 0;}else {return -1;}} }class Program      {        static void Main(string[] args)        {       Random r = new Random();int n = int.Parse(Console.ReadLine());List<Point> list = new List<Point>();for (int i = 0; i < n; i++) {list.Add(new Point(r.Next(1, 1000),r.Next(1, 1000)));}foreach (Point item in list) {Console.WriteLine("x:{0}, y:{1}", item.x, item.y);}list.Sort();foreach (Point item in list) {Console.WriteLine("x:{0}, y:{1}", item.x, item.y);}    }  }

转载于:https://www.cnblogs.com/little-sun/p/4349370.html

集合,stack,queue,dictionary,ArrayList,listT相关推荐

  1. 深入Java集合学习系列:ArrayList的实现原理

    参考文献 深入Java集合学习系列:ArrayList的实现原理 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/20 ...

  2. java队列转集合_Java集合 使用Queue

    队列(Queue)是一种经常使用的集合.Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表.它和List的区别在于,List可以在任意位置添加和删除元素,而 ...

  3. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

    转载自  Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与 ...

  4. java集合——数组列表(ArrayList)+散列集(HashSet)

    [0]README 0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java集合--数组列表(ArrayList)+散列集(HashSet) 的相关知识: 0.2 ...

  5. Stack/Queue与Vector/List的联系

    Vector:(顺序表[数组存储]) 1.当申请的空间不足的时候,需要再次开辟一块更大的空间,并把值拷过去. 2.对于尾删和尾插是比较方便的,只需要改动最后一个元素即可.不会改动原有的空间.适用于多次 ...

  6. programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation

    编程题常用知识点的review. most important: 想好(1)详尽步骤(2)边界特例,再开始写代码. I.vector #include <iostream> //0.头文件 ...

  7. [C++](13)stack queue priority_queue 模拟实现:容器适配器,deque介绍,仿函数详解

    文章目录 使用 stack 栈 queue 队列 priority_queue 优先级队列 什么是容器适配器? deque 容器简单介绍 模拟实现 stack queue priority_queue ...

  8. Java集合类学习-LinkedList, ArrayList, Stack, Queue, Vector

    Collection List 在Collection的基础上引入了有序的概念,位置精确:允许相同元素.在列表上迭代通常优于索引遍历.特殊的ListIterator迭代器允许元素插入.替换,双向访问, ...

  9. stl的set,multiset, map, multimap, deque, list, stack, queue, priority_queue

    set实际上是平衡二叉树,需要声明头文件#include<set> Insert:将元素插入集合中 使用前向迭代器对集合中序遍历 使用反向迭代器reverse_iterator可以反向遍历 ...

  10. C#集合类(HashTable, Dictionary, ArrayList)与HashTable线程安全

    HashTable中的key/value均为object类型,由包含集合元素的存储桶组成.存储桶是 HashTable中各元素的虚拟子组,与大多数集合中进行的搜索和检索相比,存储桶可令搜索和检索更为便 ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:可执行文件的装载与进程
  2. 程序猿悲喜录:魔都,想说爱你不容易
  3. ext4 文件系统新特性
  4. 一文读懂 K8s 持久化存储流程
  5. sublime text3函数追踪:ctags配置
  6. 给力!神策数据创新推出数字化运营闭环解决方案!
  7. Mysql统计分组区间的人数和 1
  8. Angular5.0之 安装指定版本Angular CLI
  9. (转)Spring Boot 2 (二):Spring Boot 2 尝鲜-动态 Banner
  10. C# 数据库并发的解决方案(通用版、EF版)
  11. 使用源码安装 PostgreSQL 12.5 主从集群
  12. Python基本数据类型(列表)
  13. 第一季度我国电子信息制造业增加值同比增长14.9%
  14. 好用的跨平台开源截图工具推荐--flameshot
  15. 互盾科技:智慧源于勤奋,伟大出自平凡
  16. Keil 中“last line of file ends without a newline”的解决
  17. 制作一个简单HTML西安旅游网页(HTML+CSS)
  18. ST-LINK/V2:cannot reset target shutting down debug session
  19. flutter图片识别_Flutter 图片解码与缓存管理研究
  20. HDU - 5238(剩余定理)

热门文章

  1. 小巫新闻客户端底部菜单切换实现
  2. golang中变量使用情况
  3. ubuntu通过pem连接服务器
  4. build muduo网络库undefined reference to问题
  5. shell命令的文本计算
  6. shell实例第11讲:取出系统IP地址,并判断属于哪个网段
  7. linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
  8. ubuntu搭建jdk1.8运行环境(下载jdk方式)
  9. Linux系统篇-文件系统虚拟文件系统
  10. 按阅读习惯来高效排列字符串的脚本