C# 各种集合

本文详细介绍了C#中的各种集合类型,包括数组、ArrayList、List、LinkedList、Queue、Stack、HashSet、SortedSet、HashTable、Dictionary、SortedDictionary和SortedList。文章重点讲述了这些集合的特点和应用场景,如数组的固定长度、链表的增删优势、哈希集合的去重功能等,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

目录

一、前期准备

二、各类集合概念

三、数组

1、Array -- 数组

2、ArrayList -- 数组列表

3、 List -- 列表 -- (推荐)

四、链表

1、 LinkedList -- 链表

2、 Queue -- 队列 -- (先进先出)

3、Stack -- 栈 -- (先进后出)

五、集合

1、 HashSet -- 哈希集合 -- (去重)

2、SortedSet -- 排序集合 -- (去重、排序)

六、Key-Value

1、 HashTable -- 哈希表

2、 Dictionary -- 字典 -- (推荐)

3、 SortedDictionary -- 排序字典 -- (排序)

4、SortedList -- 排序列表 -- 排序 -- 重复Key不可用Add


一、前期准备

引入using:

using System;
using System.Collections;
using System.Collections.Generic;

二、各类集合概念

----------------数组----------------

Array -- 数组
    内存连续分配,
    数据类型一样,
    可以坐标访问,
    读取快,增删慢,长度固定
    
ArrayList -- 数组列表
    内存连续分配,
    数据类型不一样,任何类型做object处理
    可以坐标访问,
    长度可变
    
List -- 列表
    本质是ArrayList
    内存连续分配
    长度可变
    读取快,增删慢

----------------链表----------------

LinkedList -- 链表
    元素不连续分配,
    节点值可以重复
    找元素只能遍历,查找不方便
    增删比较方便
    
Queue -- 队列
    本质是链表
    元素不连续分配
    先进先出
    
Stack -- 栈
    本质是链表
    先进后出

----------------集合----------------

HashSet -- 哈希表
    内容分散
    数据不可重复(去重)
    适用于:统计IP,好友合并
    
SortedSet -- 排序表
    内容分散
    数据自动排序,
    数据不重复(去重)

----------------键值对----------------

HashTable -- 哈希表
    key-value 类型
    体积动态添加
    将key计算一个地址,然后放入key - value
    查找时,若地址与数据可以不对,则+1查找
    查:一次定位 增删:一次定位 
    增删改查快
    浪费空间,数据太多,重复定位,效率会降低
    
Dictionary -- 字典
    key-value 类型
    本质是HashTable
    增删改查快
    输出按插入的顺序
    
SortedDictionary -- 排序字典
    key-value 类型
    本质是HashTable
    增删改查快
    自动排序,输出
    
 SortedList -- 排序列表
    重复的key,用Add会报错

三、数组

1、Array -- 数组

    内存连续分配
    数据类型一样,
    可以坐标访问
    读取快,增删慢,长度固定

 代码编写: 

internal class Program
{
    static void Main(string[] args)
    {
        //Array配置
        int[] intArray = new int[2];

        //Array 使用
        intArray[0] = 1;

        string[] stringArray = new string[] { "abc", "def" };

        //输出显示
        for (int i = 0;i < intArray.Length; i++)
        {
            Console.WriteLine(intArray[i]);
        }
        Console.WriteLine(stringArray[0]);
        Console.WriteLine(stringArray[1]);
    }
}

2、ArrayList -- 数组列表

    内存连续分配,
    数据类型不一样,任何类型做object处理
    可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值