public class ArrayClass { public ArrayClass() { array = new int[10] { 1, 2, 3, 4, 5, 7, 1, 2, 3, 4 }; list = new List<int>(); LinkedList = new LinkedList<int>(); HashSet = new HashSet<int>(); Dictionary = new Dictionary<string, string>(); Queue = new Queue<int>(); Stack = new Stack<int>(); } /*固定大小的集合,适用于存储和操作固定数量的元素,特别是当需要快速访问元素时。 适用于存储基本数据类型(如int、double等)的集合*/ public int[] array { get; set; } /*可变大小的集合,适用于需要动态添加或删除元素的场景。 提供了丰富的操作,如排序、搜索、插入和删除,适用于需要灵活操作元素的情况。 适用于缓存、数据暂存、任务列表等场景。*/ public List<int> list { get; set; } /*适用于需要频繁在列表中间插入或删除元素的场景,因为链表在内存中的存储不是连续的,所以插入和删除操作效率较高。 可以用于实现一些特殊的算法和数据结构,如循环链表、双向链表等。*/ public LinkedList<int> LinkedList { get; set; } /*用于存储不重复的元素集合,适用于需要快速判断元素是否存在的场景。 在处理唯一性约束、去重操作等方面特别有用。*/ public HashSet<int> HashSet { get; set; } /*适用于存储键值对的数据结构,键是唯一的,可以快速通过键来查找和访问对应的值。 在缓存系统、配置文件解析、数据映射等场景中非常有用。*/ public Dictionary<string, string> Dictionary { get; set; } /*先进先出(FIFO)的数据结构,适用于需要按顺序处理任务的场景。 在消息队列、任务调度、缓存等场景中常用。*/ public Queue<int> Queue { get; set; } /*后进先出(LIFO)的数据结构,适用于需要按照后进先出的顺序处理元素的场景。 在函数调用栈、撤销操作、括号匹配等场景中常用。*/ public Stack<int> Stack { get; set; } = new Stack<int>(); //public SortedList<int, int> sortedList { get; set; } = new SortedList<int, int>(); //public SortedSet<int> sortedSet = new SortedSet<int>(); //public SortedDictionary<int, int> sortedDictionary = new SortedDictionary<int, int>(); }
ArrayClass arrayClass = new ArrayClass(); Console.WriteLine("Array:" + string.Join(",", arrayClass.array)); arrayClass.list.AddRange(arrayClass.array); Console.WriteLine("List:" + string.Join(",", arrayClass.list)); //LinkedList arrayClass.LinkedList.AddLast(10); arrayClass.LinkedList.AddFirst(9); var node = arrayClass.LinkedList.Find(9); if (node != null) arrayClass.LinkedList.AddBefore(node, 8); var node2 = arrayClass.LinkedList.Find(7); if (node2 != null) arrayClass.LinkedList.AddBefore(node2, 11); Console.WriteLine("LinkedList:" + string.Join(",", arrayClass.LinkedList)); //HashSet arrayClass.HashSet.Add(1); arrayClass.HashSet.Add(2); arrayClass.HashSet.Add(3); arrayClass.HashSet.Add(2); Console.WriteLine("HashSet:" + string.Join(",", arrayClass.HashSet)); Console.WriteLine("HashSet Contains 4:" + arrayClass.HashSet.Contains(4)); Console.WriteLine("HashSet Contains 1:" + arrayClass.HashSet.Contains(4)); //Dictionary arrayClass.Dictionary.Add("name", "daiweikuan"); arrayClass.Dictionary.Add("age", "18"); Console.WriteLine("Dictionary:" + string.Join(",", arrayClass.Dictionary)); Console.WriteLine("Dictionary get key Name:" + arrayClass.Dictionary["name"]); //Queue arrayClass.Queue.Enqueue(1); arrayClass.Queue.Enqueue(2); arrayClass.Queue.Enqueue(3); arrayClass.Queue.Enqueue(4); Console.WriteLine("Queue:" + string.Join(",", arrayClass.Queue)); while (arrayClass.Queue.Count > 0) { Console.WriteLine("Queue 出队列:" + arrayClass.Queue.Dequeue()); } //Stack arrayClass.Stack.Push(1); arrayClass.Stack.Push(2); arrayClass.Stack.Push(3); arrayClass.Stack.Push(4); Console.WriteLine("Stack:" + string.Join(",", arrayClass.Stack)); while (arrayClass.Stack.Count > 0) { Console.WriteLine("Stack 出栈:" + arrayClass.Stack.Pop()); }
标签:Console,LinkedList,HashSet,C#,Queue,arrayClass,集合,Stack From: https://www.cnblogs.com/daiwk/p/18108577