queue----队列:容器,像一个单向的隧道,从一端(尾部)进入,
从另一端(头部)出去,先进的先出,类似高速公路上的车流通过一个隧道。
重要的操作:
- 入队——Enqueue():加入队列,进入隧道
- 出队——Dequeue():从队列中弃除,从隧道钻出
其它操作请参考API:
- First()——队列里最先入队的item,位于头部
- Last()——队列里最后入队的item,位于尾部
案例:
#if UNITY_EDITOR
[ContextMenu("测试队列First()和Last()")]
#endif
void TestQueue()
{
/************************************************************************
*
* queue----队列:容器,像一个单向的隧道,从一端(尾部)进入,
* 从另一端(头部)出去,先进的先出,类似高速公路上的车流通过一个隧道。
* 重要的操作:
* 入队——Enqueue():加入队列,进入隧道
* 出队——Dequeue():从队列中弃除,从隧道钻出
*
* 其它操作请参考API:
* First()——队列里最先入队的item,位于头部
* Last()——队列里最后入队的item,位于尾部
*
************************************************************************/
//int队列
Queue<int> myquene = new Queue<int>();
//添加一个item
myquene.Enqueue(1);
Debug.Log($"入队添加了一个元素1,count = {myquene.Count}");
//再添加一个item
myquene.Enqueue(2);
Debug.Log($"入队添加了一个元素2,count = {myquene.Count}");
//再添加一个item
myquene.Enqueue(3);
Debug.Log($"入队添加了一个元素3,count = {myquene.Count}");
//查看first和last的item
Debug.Log($"first item is = {myquene.First()}");
Debug.Log($"last item is = {myquene.Last()}");
//【出队】一个item
var t = myquene.Dequeue();
Debug.Log($"出队删除一个item:{t} ,count = {myquene.Count}");
//查看first和last的item
Debug.Log($"first item is = {myquene.First()}");
Debug.Log($"last item is = {myquene.Last()}");
}
输出:
入队添加了一个元素1,count = 1
入队添加了一个元素2,count = 2
入队添加了一个元素3,count = 3
first item is = 1
last item is = 3
出队删除一个item:1 ,count = 2
first item is = 2
last item is = 3