zoukankan      html  css  js  c++  java
  • C#中常见的数据结构简单介绍

     
    数组(Array):
    1、数组存储在连续的内存上
    2、数组的元素类型必须相同
    3、数组可以直接通过下标访问
    4、查找与修改元素的速度非常快
    5、必须在声明时指定长度
     
     
    动态数组(ArrayList):
    1、ArrayList的底层其实就是一个数组
    2、不必在声明时指定长度,会根据存储的数据动态增加或减少长度
    3、插入和删除一个元素时,会移动它之后所有元素的位置,效率低,频繁进行插入删除元素时推荐使用LinkedList
    4、ArrayList会把所有元素都当做Object处理,因此可以存储不同类型的元素
    5、ArrayList是非类型安全的,而且在插入和删除元素时会进行拆箱和装箱的操作,消耗性能,效率低
     
     
    泛型List:
    1、List是ArrayList的泛型等效类
    2、需要在声明时通过泛型指定类型
    3、没有拆箱装箱操作,因此在大多数情况下List要比ArrayList效率高且类型安全
     
     
    双向链表(LinkedList):
    1、链表在内存中的空间不是连续的,每块空间称作一个节点,每个节点都存有与它之前和之后相连接的节点的地址,因此向链表中添加和删除元素时只需要更改相关节点存储的地址的指向,效率高
    2、查找元素时不能通过下标访问,只能从头开始通过地址按顺序查找,效率低
     
     
    堆栈(Stack):
    先进后出原则,最先插入的元素最后被访问,最后被插入的元素最先被访问
     
     
    队列(Queue):
    先进先出的原则,最先插入的元素最先被访问,最后插入的元素最后被访问
     
     
    字典(Dictionary):
    1、创建字典时需要指定key和value的类型
    2、字典中的key的值必须唯一,value的值不唯一
    3、可以通过key快速查找对应的value,速度快,但是消耗内存
  • 相关阅读:
    获取SpringMVC的映射路径
    Spring任务调度之Quartz集成
    Spring任务调度之SpringTask基于XML和基于注解的使用示例
    Redis分布式集群搭建
    京东软开实习岗
    C语言编程练习(一)
    servlet温习
    tomcat启动超过时间
    JDK版本更换,Eclipse中所有的项目报错
    Myeclipse2017C版本破解
  • 原文地址:https://www.cnblogs.com/yzz071277/p/9211559.html
Copyright © 2011-2022 走看看