网站怎么做uc整合,字牌标识公司网站网站编号 6019,免费推广软件手机版,网站建设书店目标客户分析1、数组 数组是存储相同类型元素的固定大小的顺序集合 声明数组时#xff0c;必须指定数组的大小 2.数组的插入和删除数据比较麻烦#xff0c;但是查询比较快
2、动态数组#xff08;ArrayList#xff09;
动态数组#xff1a;可自动调节数组的大小
可以存储任意类型数…1、数组 数组是存储相同类型元素的固定大小的顺序集合 声明数组时必须指定数组的大小 2.数组的插入和删除数据比较麻烦但是查询比较快
2、动态数组ArrayList
动态数组可自动调节数组的大小
可以存储任意类型数据但是会带来装箱与拆箱的操作。
那什么是装箱和拆箱呢
装箱与拆箱 装箱与拆箱 将所有的数据的都作为了object去处理 装箱从值类型转换到引用类型 拆箱从引用类型转换到值类型 一定只有经过装箱的对象才会有拆箱
装箱与拆箱的原理 装箱的原理 1.分配堆区内存值类型数据大小指针大小 2.将值类型数据拷贝到分配的堆区内存中 3.将堆区的内存地址返回 拆箱的原理 1.获取堆区中的属于值类型的地址 2.将堆区中的值类型数据拷贝到栈区中的值类型实例中
性能损耗 1.装箱时需要分配内存创建新的对象 2.拆箱时需要释放内存
3、动态数组(List)
List在C#中不再是链表而是动态数组List是泛型
声明时指定了数据类型避免了装箱与拆箱能够自动扩容
4、双向链表(LinkedList) 双向链表插入和删除数据比较快但是查询比较慢 5、栈与队列 栈与队列的特点 栈先进后出 队列先进先出 6、哈希表与字典 哈希表与字典的存在形式 哈希表键值对形式存储 哈希冲突不同的键值对在哈希表计算中得到的相同的哈希值 1.链地址法 2.开放寻址法 字典键值对形式存储 哈希表与字典的异同 字典与哈希表区别 相同点 1.都是键值对形式存在且键是唯一的值是不唯一的都是无序的键值对 2.存储的数据个数不受限制 3.方法高度相似 不同点 1.键值对的类型不一样哈希表是任意类型字典是指定类型 2.命名空间不一样 哈希表System.Collections字典System.Collections.Generic 3.限制类型不同字典存储数据时限制类型哈希表是存储任意类型 4.性能不同哈希表存在装箱与拆箱字典不存在装箱与拆箱
7、HashSetT 集合
C#的hash集是泛型非线性结构.用于存储唯一的元素不允许重复。它支持高效的元素查找和去重。
哈希表Hash Table HashSet 使用哈希表作为底层数据结构。哈希表是一种用于快速查找和插入的数据结构它将键映射到值的过程通过哈希函数来完成。 哈希函数 哈希函数是一个将元素映射到哈希值的函数。在 HashSet 中哈希函数将元素转换为一个索引以便快速定位元素。好的哈希函数能够尽可能避免冲突即不同的元素映射到相同的索引。 桶Buckets 哈希表通常由一组桶组成每个桶存储一组哈希值相同或相近的元素。HashSet 中的每个桶可以包含一个或多个元素。 碰撞解决 由于不同的元素可能映射到相同的哈希值可能会导致冲突。哈希表使用不同的碰撞解决策略来处理这些冲突常见的有链地址法Chaining和开放寻址法Open Addressing等。 动态大小 HashSet 的哈希表在内部会动态地调整大小以适应添加的元素数量。当哈希表的负载因子即元素数量与桶数量的比例超过阈值时会自动重新调整桶的数量。 性能 哈希表的平均查找和插入操作的时间复杂度通常是 O(1)常数时间但在极端情况下可能会退化为 O(n)线性时间。