3
respostas

Metodo Peek

Estou com uma dúvida sobre o método Peek.

No exemplo citado no capítulo 5, o método Peek está definido como "guincho", então eu somente posso utilizar esse método se o próximo veículo da fila for o guincho? Se ao invés de usar a palavra "guincho", eu deveria utilizar a palavra veiculo? O exemplo quer visualizar o próximo veiculo da fila mas ele mesmo define o próximo veiculo da fila como "guincho", poderia me explicar por gentileza?

if (pedagio.Peek() == "guincho") { Console.WriteLine("guincho está fazendo o pagamento."); }

3 respostas

Oi aluno,

O método Peek é um método que faz parte de uma estrutura de dados chamada "fila". Uma fila é um lugar onde as coisas ficam em uma ordem específica, e as coisas só podem ser retiradas da fila na mesma ordem em que foram colocadas. Imagine uma fila de pessoas esperando para subir num brinquedo, por exemplo. A primeira pessoa da fila é a primeira a subir, a segunda pessoa é a segunda a subir, e assim por diante.

O método Peek permite que você veja qual é o próximo item da fila, sem removê-lo da fila. Então, no exemplo que você mencionou, o método Peek está sendo usado para verificar se o próximo veículo da fila é um guincho. Se o próximo veículo for um guincho, a mensagem "guincho está fazendo o pagamento" é exibida. Se o próximo veículo não for um guincho, nada acontece.

Espero ter ajudado e bons estudos,

Abcs!

Excelente explicação, só fiquei com mais uma dúvida, no caso do exemplo, o método Peek foi utilizado para o caso do próximo da fila ser o guincho, então eu devo criar um método Peek para cada elemento da fila? No caso de eu querer espiar qual o próximo elemento da fila e esse elemento não for o guincho?

Oi!

Não é necessário! Na verdade, o método Peek é geralmente implementado de forma a permitir que você visualize qualquer elemento da fila, independentemente do tipo de elemento.

Uma forma de fazer isso é usar o método Peek para retornar o próximo elemento da fila como um objeto genérico (como, por exemplo, um objeto do tipo "Object" em C# ou um objeto do tipo "Any" em Swift). Dessa forma, você pode chamar o método Peek e, independentemente do tipo de elemento que estiver na frente da fila, o método retornará um objeto que pode ser comparado com outros objetos usando os operadores de igualdade e desigualdade.

Algo assim poderia ser usado para verificar se o próximo elemento da fila é um guincho:

Queue<Object> queue = new Queue<Object>();

// Adiciona elementos à fila
queue.Enqueue("primeiro elemento");
queue.Enqueue("segundo elemento");
queue.Enqueue("terceiro elemento");

// Usa o método Peek para verificar se o próximo elemento é um guincho
if (queue.Peek() == "guincho")
{
    Console.WriteLine("guincho está fazendo o pagamento");
}

Espero ter ajudado e bons estudos,

Abcs!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software