英文网站开发哪家好,深州做网站公司,期货交易平台,wordpress商品采集插件1、LinkedList(链表)
链表中元素存储内存中是不连续分配#xff0c;每个元素都有记录前后节点#xff0c;节点值可以重复#xff0c;不能通过下标访问#xff0c;泛型的使用保证类型安全#xff0c;可以避免装箱拆箱#xff0c;找元素就只能遍历#xff0c;查找不方便每个元素都有记录前后节点节点值可以重复不能通过下标访问泛型的使用保证类型安全可以避免装箱拆箱找元素就只能遍历查找不方便增删比较快。
例如
Console.WriteLine(***************LinkedListT******************);
LinkedListstring linkedList new LinkedListstring();
linkedList.AddFirst(C/C);
linkedList.AddLast(Java);bool isContain linkedList.Contains(Java);
LinkedListNodestring nodeC linkedList.Find(C/C); // 从头查找
linkedList.AddBefore(nodeC, C#);
linkedList.AddAfter(nodeC, Python);
foreach(var item in linkedList)
{Console.WriteLine(item item);
}
linkedList.Remove(Java);
linkedList.Remove(nodeC);
linkedList.RemoveFirst();
linkedList.RemoveLast();
linkedList.Clear(); 2、QueueT(队列)
QueueT是链表先进先出不能通过下标访问泛型的使用保证类型安全可以避免装箱拆箱找元素就只能遍历查找不方便增删比较快。
例如
Console.WriteLine(***************Queue******************);
Queue queue new Queue();
queue.Enqueue(C/C);
queue.Enqueue(C#);
queue.Enqueue(Java);
queue.Enqueue(Python);
queue.Enqueue(CJavaPy);
queue.Enqueue(JS);
foreach (string item in queue)
{Console.WriteLine(item);
}
Console.WriteLine($Dequeuing {queue.Dequeue()});
Console.WriteLine($Peek at next item to dequeue: { queue.Peek()});
Console.WriteLine($Dequeuing {queue.Dequeue()});
Queue queueCopy new Queue(queue.ToArray());
foreach (string item in queueCopy)
{Console.WriteLine(item);
}
Console.WriteLine($queueCopy.Contains(\c#\) {queueCopy.Contains(c#)});
queueCopy.Clear();
Console.WriteLine($queueCopy.Count {queueCopy.Count}); 注意ConcurrentQueue 线程安全版本的Queue。
3、StackT(堆栈)
StackT是链表先进后出不能通过下标访问泛型的使用保证类型安全可以避免装箱拆箱找元素就只能遍历查找不方便增删比较快。
例如
Console.WriteLine(***************Stack******************);
Stack stack new Stack();
stack.Push(C/C);
stack.Push(C#);
stack.Push(Java);
stack.Push(Python);
stack.Push(CJavaPy);
stack.Push(JS);
foreach (string item in stack)
{Console.WriteLine(item);
}
Console.WriteLine($Pop {stack.Pop()});//获取并移除
Console.WriteLine($Peek at next item to dequeue: { stack.Peek()});//获取不移除
Console.WriteLine($Pop {stack.Pop()});
Stack stackCopy new Stack(stack.ToArray());
foreach (string item in stackCopy)
{Console.WriteLine(item);
}
Console.WriteLine($stackCopy.Contains(\C#\) {stackCopy.Contains(C#)});
stackCopy.Clear();
Console.WriteLine($stackCopy.Count {stackCopy.Count}); 注意ConcurrentStack线程安全版本的Stack。