| 12345678910111213141516171819202122232425262728293031323334353637 |
- using System.Collections.Generic;
- namespace GFGGame
- {
- /// <summary>
- /// 唯一队列
- /// </summary>
- /// <typeparam name="T"></typeparam>
- public class UniqueQueue<T>
- {
- private Queue<T> queue = new Queue<T>();
- private HashSet<T> set = new HashSet<T>();
- public bool Contains(T item)
- {
- return set.Contains(item);
- }
-
- public void Enqueue(T item)
- {
- if (!set.Contains(item))
- {
- queue.Enqueue(item);
- set.Add(item);
- }
- }
- public T Dequeue()
- {
- T item = queue.Dequeue();
- set.Remove(item);
- return item;
- }
- public int Count => queue.Count;
- }
- }
|