‫E neste vídeo, vamos cobrir o Kyuss e ver como usar cues em nossos aplicativos,
‫cues são significativos e muito usados pelo nosso sistema operacional, por exemplo, para lidar com tarefas, agendamento
‫e muitos outros processos.
‫As dicas devem ser usadas quando a ordem dos dados é importante, como veremos em nosso exemplo.
‫Portanto, vamos em frente e, em primeiro lugar, definir uma fila para definir uma fila que você pode usar para enfileirar.
‫As filas de palavras-chave também fazem parte das coleções genéricas, o que significa que precisamos definir que
‫fila tipo A irá incorporar.
‫Nesse caso, ele conterá vários números inteiros, mas também poderá conter qualquer outro tipo.
‫Ele poderia conter cordas, poderia conter até mesmo o objeto inteiro.
‫Portanto, você está totalmente livre para definir o que deseja que este item contenha.
‫Então, enfileire então menos que assinar, integre e assine e então o nome da fila é igual e
‫então você pode inicializá-la imediatamente como fazemos aqui, onde apenas criamos uma fila vazia que contém inteiros.
‫OK, agora podemos prosseguir e adicionar itens a esta fila.
‫Para adicionar itens para acusar, você pode usar o método NQ.
‫O método NQ adiciona um objeto ao final da fila.
‫OK, então se eu adicionar um item como um, por exemplo, este item será o primeiro porque embora seja o
‫primeiro que incluímos, ele também será o último.
‫OK, assim que adicionarmos outro, o novo item será o último da fila.
‫OK, então é assim que o pedido é feito.
‫É semelhante a uma pilha, mas a diferença é que uma fila quando você se livra de algo,
‫então, quando você abre um item, ele vai retirá-lo do início da fila.
‫Portanto, o outro item criado primeiro será retirado ou retirado da fila, por assim
‫dizer.
‫OK, então, para ver os itens Qs, podemos usar o método de pico e esse método exibirá o primeiro item da fila,
‫portanto, a frente da fila, por assim dizer.
‫Então é como uma fila de pessoas onde você está no balcão e quer pedir alguma coisa, por exemplo, então o
‫método vai te dar a primeira pessoa nessa fila que está prestes a fazer o pedido.
‫OK, então vamos executar isso bem rápido e ver como isso vai ficar.
‫E vemos que o valor na frente da fila é um.
‫Agora, vamos adicionar mais alguns valores para ver como isso afetará nosso aplicativo.
‫Portanto, aqui vou adicionar os diferentes itens da fila, como concluirei o primeiro trimestre, o segundo trimestre e o terceiro trimestre e estou apenas usando
‫esses números.
‫Um dois três.
‫Eles também podem ser quaisquer outros números.
‫Realmente não tem que ser um, dois, três.
‫OK, com o pico, obtemos o item que está no início da fila.
‫Você pode ver todas as vezes, não importa o que adicionemos à fila, aquele será nosso primeiro item
‫na fila.
‫Portanto, será aquele exibido quando costumávamos usar o método peek.
‫Agora, para se livrar de um item da fila, você usaria o método dequeue.
‫OK, então aqui você ponto dequeue.
‫Portanto, este desenfileiramento irá agora livrar-se do primeiro inteiro da nossa fila e também irá armazená-lo imediatamente.
‫Assim, poderíamos armazenar isso, vamos chamar esse item de fila, por exemplo, e ele então armazenará o resultado
‫desse item de desenfileiramento.
‫Então, basicamente, ele armazenará um lá porque esse é o primeiro item que temos na lista.
‫E então Pequim aparecerá também, porque agora um não está mais lá.
‫O primeiro item se foi.
‫Portanto, agora o valor na fila será dois porque, bem, acabamos de descobrir o primeiro item.
‫Portanto, é semelhante a estourar uma pilha, mas retira o item no início da fila em vez do fim
‫da fila ou do final da vara, da maneira que você quiser.
‫Você pode, é claro, também tentar desenfileirar um item no início, se não houver elementos dentro
‫do cubo, mas você encontrará uma exceção de operação inválida, a fila está vazia, então você
‫precisará verificar se a fila está vazio ou não antes de executá-lo.
‫Então, aqui podemos executar o método dequeue porque sabemos que acabamos de descobrir algo.
‫Caso contrário, você usaria a propriedade count de sua fila para descobrir quantos itens você tem
‫lá.
‫Então esta é a propriedade que você pode usar, obtém o número de elementos contidos na
‫fila e você pode então verificar se aquele é maior que zero, por exemplo, para verificar se
‫há algo na fila que você possa, por exemplo , desenfileirar.
‫OK, então, neste exemplo específico, vou apenas prosseguir e usar o meu.
‫Q Conte para verificar novamente em um loop while e, para cada item, retirarei da fila e também anotarei a
‫quantidade de itens que ainda estão em Q e também o item que foi removido.
‫Portanto, esta linha aqui removerá o item chamando o método dequeue e, ao mesmo tempo, exibirá o item
‫bem aqui porque é o que estamos usando aqui.
‫Estamos usando o barbante.
‫Direito.
‫E com essa posição zero, ele exibirá o que quer que seja o resultado da chamada de desenfileiramento.
‫E como você pode ver aqui, o método dequeue retornará um número inteiro.
‫Então, vamos exibir um número aqui.
‫OK, deixe-me me livrar deste desenfileiramento que usei aqui para demonstrar como desenfileirar um item e vamos
‫executá-lo novamente e você pode ver o valor diferente deste.
‫E então basicamente iniciamos o loop de arame aqui.
‫Essa é a parte interessante.
‫Portanto, uma palavra é removida do cubo.
‫Agora, só temos dois itens restantes.
‫Dois foram retirados do CUNA.
‫Só temos um item restante e três foram removidos do cubo.
‫Agora temos apenas zero itens restantes.
‫Então, basicamente, o Q está vazio nesse ponto.
‫Tudo bem, então vamos olhar um exemplo mais ou menos do mundo real, é claro, não
‫trabalhamos com bancos de dados neste exemplo simples aqui, mas digamos que temos uma plataforma de e-commerce e somos vendedores e recebemos um
‫monte de pedidos.
‫Esses pedidos devem ser processados de forma que o tempo de atendimento, de forma que o tempo de espera pelo cliente seja
‫reduzido ao mínimo.
‫É por isso que usaremos Qs, porque eles são muito práticos, pois nos preocupamos
‫com a ordem dos pedidos que chegam.
‫Portanto, a ordem dos pedidos é um pouco complicada aqui, mas a ordem em que os dados foram
‫recebidos, OK, e com isso quero dizer os próprios pedidos.
‫Então, vamos olhar para esta classe muito simples que vamos construir aqui e vou colocá-la dentro
‫do mesmo arquivo aqui.
‫Pedido sem disco com uma propriedade de ID do pedido, a propriedade quantidade do pedido e, em seguida, o construtor, que basicamente define
‫esses dois valores quando criamos um objeto de pedido.
‫E então temos esta mensagem de impressão ou este método de pedido de processo que imprimirá o ID do pedido do item
‫que estamos olhando no momento.
‫Então, da ordem que estamos olhando atualmente.
‫OK, agora o que eu gostaria de fazer é criar métodos dentro da minha classe de
‫programa.
‫Vou colocá-lo aqui dentro deste colchete ainda.
‫E os métodos, eles vão atender os pedidos das diferentes filiais.
‫Digamos que temos duas filiais diferentes de onde podemos receber pedidos.
‫Digamos que estejamos vendendo na Amazon e, ao mesmo tempo, na Best Buy, por exemplo, e agora receberemos
‫esses pedidos.
‫Agora, não vamos complicar muito onde vamos verificar qual branch é o que a ordem dos diferentes branches faz, ou
‫algo que você poderia, é claro, ver como um desafio para si mesmo se você quiser
‫desenvolver isso .
‫Mas vamos apenas dizer, OK, dê-me as ordens de cada um na ordem certa e dê-me
‫as ordens da filial na ordem certa também.
‫OK, então aqui este será o branch um com um monte de pedidos e então temos o branch dois com um monte de
‫palavras.
‫Portanto, estamos obtendo os dados.
‫Digamos que recebamos esses dados de um banco de dados onde estamos verificando, OK, quais foram os pedidos?
‫E provavelmente os verificaríamos por data, para que cada pedido também tivesse uma data.
‫Aqui temos o ID do pedido, mas normalmente também tentamos armazená-lo no momento do pedido e assim por diante.
‫Mas vamos mantê-lo simples para este exemplo.
‫OK, então temos agora uma matriz de pedidos em ambos os exemplos.
‫E quando chamamos o método de recebimento de pedidos do ramo um e dois, eles basicamente transformarão um array de
‫pedidos.
‫Portanto, aqui está uma série de ordens.
‫OK, então é isso que esta declaração aqui faz, pedidos de retorno.
‫Agora, em nosso exemplo particular, o ID do pedido será de fato único para os dois pedidos diferentes,
‫então eles já estarão na ordem certa, por assim dizer.
‫OK, então esta é a ordem que um faz na ordem dois, então temos a ordem três e quatro
‫e cinco da filial dois e, à noite, e a filial um, veio outro pedido e alguém comprou 10 dos nossos
‫itens.
‫Agora, em nosso método principal, podemos criar uma fila e realmente nos livrar de todas essas coisas aqui e nosso método principal, podemos
‫ir em frente e criar uma fila de pedidos.
‫OK, então aqui, ordem da fila.
‫Você pode ver que este não será um tipo simples como inteiro agora, mas na verdade irá
‫armazenar um monte de pedidos.
‫Essa é a coisa legal da fila.
‫Portanto, não são apenas tipos simples e vou chamar este de fila de pedidos e inicializá-lo
‫imediatamente aqui.
‫E então, neste ponto, podemos prosseguir e enfileirar todos os nossos pedidos que recebemos do Branch um usando este loop for
‫aqui, isso para cada loop.
‫Então, estamos examinando cada pedido que chamarei de O para cada loop desta iteração em
‫nossos pedidos de recebimento do Branch um.
‫Agora, isso aqui será do tipo array de ordem.
‫OK, então, quando chamarmos esse método, ele retornará uma matriz de pedidos como você vê aqui.
‫Então, basicamente, isso para cada loop percorrerá os pedidos que temos dentro dessa matriz de pedidos
‫e examinará cada um deles.
‫Então, todos serão primeiro esta ordem, então será esta ordem, então será aquela ordem.
‫E para cada um deles, vai incluir esses pedidos.
‫OK, então é isso que faz para cada loop.
‫E então criamos outro para cada loop para o outro branch também.
‫Então.
‫O mesmo vale aqui para cada loop, todos em pedidos recebidos da Filial dois.
‫OK, então este é o Branch cara, este é o Branch um e o mesmo se aplica.
‫Portanto, o mesmo conceito se aplica.
‫Então, para os pedidos, vamos passar por nossa fila um por um e depois remover os elementos de nossa fila
‫e processá-los até que nossa fila fique vazia e todos os pedidos sejam finalmente processados.
‫OK, é por isso que temos este método de processamento de pedido aqui, que irá processar os pedidos.
‫OK, agora podemos prosseguir.
‫E em vez de nosso método principal aqui em cima, uma vez que temos a fila de pedidos com
‫todos os itens nela, podemos percorrê-la e podemos verificar se a fila de pedidos não está vazia e contanto que não esteja vazia.
‫Portanto, enquanto a fila de pedidos, a contagem é maior que zero.
‫Vamos executar esse loop while e remover a ordem do início da fila.
‫Portanto, a ordem que veio primeiro, por assim dizer, e a armazene em uma variável chamada ordem atual.
‫OK, então temos esse objeto de pedido, que será chamado de pedido atual, que será basicamente o
‫resultado da fila do primeiro item de nossa fila de pedidos.
‫Então basicamente tirando este item primeiro, depois este item, depois aquele item, então este item depois aquele
‫e aquele outro, OK, e então irá processar cada um deles passo a passo.
‫Portanto, o processamento em nosso caso será algo muito simples e apenas imprimiremos no console.
‫Mas é claro, você poderia executar algo muito mais complexo em segundo plano aqui.
‫Isso pode desencadear alguns eventos, como o envio de um e-mail, por exemplo, para um
‫funcionário que deve cuidar dele ou para qualquer sistema de processamento que você tenha empregado em sua empresa.
‫Tudo bem.
‫E sim, é basicamente isso.
‫Agora, vamos executar este aplicativo para ver os resultados e ver o pedido um foi processado,
‫o pedido dois foi processado, depois o pedido seis, depois três, quatro, cinco.
‫OK, então estamos processando os pedidos, é claro, na ordem em que os sinalizamos OK com isso,
‫os executamos.
‫Você pode ver aqui que estamos na fila da Filial um primeiro e, em seguida, da Filial dois.
‫Então imagine para o seguinte cenário onde os pedidos, eles são criados no sistema
‫internamente, mas eles primeiro têm que ser aceitos e totalmente enviados para a entidade de processamento, seja ela qual
‫for, como o outro escritório também, por exemplo.
‫E eles fazem isso no final do dia, por exemplo.
‫Então, a primeira filial um termina sua equipe e eles dizem, OK, bem, aceitamos esses pedidos.
‫E mais tarde naquele dia, porque digamos que eles estejam em um fuso horário diferente.
‫Por exemplo, o ramo dois diz, sim, estamos de acordo.
‫Bem, enviamos nossos pedidos como aprovados nesse ponto também, e então eles começam a ser processados.
‫OK, então é assim que este exemplo pode ser considerado, por exemplo.
‫Direito.
‫Caso contrário, é claro, você os encomendaria imediatamente com base em seu ID ou com base na hora em
‫que foram criados.
‫OK, tudo bem.
‫Agora você tem uma certa ideia de como esses pedidos funcionam e como funcionam as filas.
‫Essa é a parte mais importante.
‫Agora você pode criar suas próprias filas e usá-las em seus aplicativos.
‫Tudo bem.
‫Espero que tenham gostado desse vídeo.
‫Te vejo no próximo.