Queue的简单使用,这里通过人名做进队出队的一些操作,直观的看出队列的常用函数所起到的作用;
队列是先进先出,他就像是我们排队上车一样谁先来谁先在前门上车,谁先上车谁就是第一个在后门下车的;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestQueue : MonoBehaviour
{
public Queue<string> nameQueue = new Queue<string>();
string[] nameArray = { "小名", "小红", "阿辉" };
int index = 0;
private void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
index = 0;
AddName(index);
}
if (Input.GetKeyDown(KeyCode.Alpha2))
{
index = 1;
AddName(index);
}
if (Input.GetKeyDown(KeyCode.Alpha3))
{
index = 2;
AddName(index);
}
if (Input.GetMouseButtonDown(1))
{
//安全验证队列里是否有元素
if (nameQueue.Count != 0)
{
//第一个元素出队列
nameQueue.Dequeue();
}
}
if (Input.GetMouseButtonDown(0))
{
//安全验证队列里是否有元素
if (nameQueue.Count != 0)
{
//获取当前队列第一个元素
string name = nameQueue.Peek();
print(name);
}
}
//打印当前队列的长度
print(nameQueue.Count);
if (Input.GetMouseButtonDown(2))
{
//清空队列所有元素
nameQueue.Clear();
}
}
void AddName(int index)
{
//查找当前队列里面是否已存在当前要添加的元素
if (nameQueue.Contains(nameArray[index]))
{
return;
}
//在队列的尾部添加新的元素
nameQueue.Enqueue(nameArray[index]);
}
}