专业的JAVA编程教程与资源

网站首页 > java教程 正文

介绍C#中常用的集合类及其特点_c#什么是集合

temp10 2025-02-21 15:29:21 java教程 17 ℃ 0 评论

在 C# 中,常用的集合类位于 System.Collections 和
System.Collections.Generic 命名空间中,分为
非泛型集合泛型集合 两类。以下是常用集合类及其特点的介绍:


1. 非泛型集合类

非泛型集合可以存储任何类型的对象,但需要进行装箱和拆箱操作,效率相对较低。主要类位于 System.Collections 命名空间。

介绍C#中常用的集合类及其特点_c#什么是集合

ArrayList

  • 特点:动态数组,容量可以自动增长。存储对象类型,可存储不同类型的元素。需要装箱和拆箱操作。
  • 使用场景:适用于存储少量动态数据,且对性能要求不高的场景。
  • 示例:ArrayList list = new ArrayList(); list.Add(1); list.Add("hello"); list.Add(3.14);

Hashtable

  • 特点:基于键值对存储数据。无序存储,快速查找。键和值都可以是任意对象类型。
  • 使用场景:适用于非泛型的键值对存储和查找。
  • 示例:Hashtable hashtable = new Hashtable(); hashtable.Add("key1", "value1"); hashtable.Add(2, 100);

Queue

  • 特点:先进先出(FIFO)结构。提供 Enqueue(入队)和 Dequeue(出队)方法。
  • 使用场景:任务调度或队列管理。
  • 示例:Queue queue = new Queue(); queue.Enqueue("task1"); queue.Enqueue("task2"); queue.Dequeue();

Stack

  • 特点:后进先出(LIFO)结构。提供 Push(压栈)和 Pop(弹栈)方法。
  • 使用场景:适用于深度优先搜索、表达式求值等场景。
  • 示例:Stack stack = new Stack(); stack.Push(1); stack.Push(2); stack.Pop();

2. 泛型集合类

泛型集合位于
System.Collections.Generic 命名空间中,可以避免装箱和拆箱操作,性能更高且类型安全。

List

  • 特点:泛型动态数组,容量自动增长。支持快速索引访问。类型安全。
  • 使用场景:存储同类型的动态数据。
  • 示例:List numbers = new List { 1, 2, 3 }; numbers.Add(4); Console.WriteLine(numbers[0]);

Dictionary

  • 特点:泛型键值对集合。提供高效的查找和添加操作。键是唯一的,值可以重复。
  • 使用场景:需要快速查找或存储键值对数据。
  • 示例:Dictionary scores = new Dictionary { { "Alice", 90 }, { "Bob", 85 } }; Console.WriteLine(scores["Alice"]);

Queue

  • 特点:泛型先进先出(FIFO)队列。提供类型安全的队列操作。
  • 使用场景:同 Queue 类,适用于需要类型安全的场景。
  • 示例:Queue tasks = new Queue(); tasks.Enqueue("task1"); tasks.Enqueue("task2"); tasks.Dequeue();

Stack

  • 特点:泛型后进先出(LIFO)堆栈。提供类型安全的堆栈操作。
  • 使用场景:同 Stack 类,适用于需要类型安全的场景。
  • 示例:Stack stack = new Stack(); stack.Push(1); stack.Push(2); stack.Pop();

HashSet

  • 特点:存储唯一的元素,内部无序。提供高效的插入和查找操作。不允许重复元素。
  • 使用场景:集合去重或需要快速查找的场景。
  • 示例:HashSet set = new HashSet { 1, 2, 3 }; set.Add(2); // 不会添加重复值

SortedDictionary

  • 特点:键值对集合,按键排序。提供与 Dictionary 类似的功能,但存储有序。
  • 使用场景:需要键值对存储且要求按键排序的场景。
  • 示例:SortedDictionary sortedDict = new SortedDictionary { { "Bob", 85 }, { "Alice", 90 } };

SortedSet

  • 特点:存储唯一元素,内部有序。提供基于二叉搜索树的排序和查找。
  • 使用场景:需要有序的去重集合。
  • 示例:SortedSet sortedSet = new SortedSet { 3, 1, 2 };

总结

集合类

特点

适用场景

ArrayList

非泛型动态数组,需要装箱/拆箱

低性能要求的动态数据存储

Hashtable

键值对,无序存储,非泛型

快速查找键值对

List

泛型动态数组,类型安全

动态数据存储,随机访问

Dictionary

泛型键值对集合,快速查找

键值对存储,需类型安全

Queue/Queue

FIFO 队列

任务调度、队列管理

Stack/Stack

LIFO 堆栈

表达式求值、深度优先搜索

HashSet

无序唯一集合

去重操作,快速查找

SortedDictionary

按键排序的键值对集合

有序存储的键值对

SortedSet

有序唯一集合

有序去重集合

选择集合类时,应根据具体场景、性能要求和数据特性决定。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表