/*
* 선입선출 객체 수집, 특수 시퀀스 테이블
*
* 큐(Queue)
* 객체는 선입선출, 선착순의 원칙을 따릅니다.
*
* 객체는 a에 저장됩니다. 기본 크기 32의 버퍼를 순서대로 버퍼 공간이 부족할 때 증가율(2.0)에 따라 새 버퍼를 생성
* 기존 객체를 새 버퍼에 복사(오버헤드 높음)
*
* Queue 방법
* Enqueue Enter 대기열 대기열 입력
* 대기열 제거 대기열에서 나가기
* 대기열의 선두를 보려면 엿보기
* 대기열을 지우려면 지우기
* 포함 여부를 묻는 포함
* 대기열의 요소 수 계산
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
/*
* 先进先出的对象集合、特殊的顺序表
*
* 队列(Queue)
* 对象按照先进先出,先来先服务的原则
*
* 对象按顺序存储在默认大小的32的缓冲区中;当缓冲区空间不足时,按增长因子(2.0)创建一个新的缓冲区
* 并将现有对象拷贝到新缓冲区中(开销大)
*
* Queue的方法
* Enqueue 入队 进队
* Dequeue 出队 离队
* Peek 查看队头
* Clear 清除队列
* Contains 询问是否包含
* Count 队列中的元素个数
*/
public static void QueueTest()
{
Queue queue = new Queue();
for (int i = 0; i < 10; i++)
{
queue.Enqueue("第" + (i + 1) + "个人");
}
//出队为队中数据进行服务
while (queue.Count != 0)
{
Debug.Log("为" + queue.Dequeue() + "服务");
}
}
void Start()
{
QueueTest();
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
/*
* 先进先出的对象集合、特殊的顺序表
*
* 队列(Queue)
* 对象按照先进先出,先来先服务的原则
*
* 对象按顺序存储在默认大小的32的缓冲区中;当缓冲区空间不足时,按增长因子(2.0)创建一个新的缓冲区
* 并将现有对象拷贝到新缓冲区中(开销大)
*
* Queue的方法
* Enqueue 入队 进队
* Dequeue 出队 离队
* Peek 查看队头
* Clear 清除队列
* Contains 询问是否包含
* Count 队列中的元素个数
*/
public static void QueueTest()
{
Queue queue = new Queue();
for (int i = 0; i < 10; i++)
{
queue.Enqueue("第" + (i + 1) + "个人");
}
//出队为队中数据进行服务
while (queue.Count != 0)
{
if (queue.Peek().Equals("第5个人"))
{
Debug.Log("请准备!");
}
System.Object man = queue.Dequeue();
if (man.Equals("第5个人"))
{
Debug.Log("为" + man + "唱生日快乐歌");
}
else
{
Debug.Log("为" + man + "服务");
}
}
}
void Start()
{
QueueTest();
}
}