A classe Java Stack estende a classe Vector. Ele permite que você crie novos elementos, visualize um elemento na rima, atualize um elemento na rima e exclua todos os elementos da rima. Empilha os dados do processo em uma ordem de primeiro a entrar, último a trespassar (FILO). Isso significa que você só pode aditar ou remover itens do topo de uma rima.
A estrutura de dados da rima tem cinco métodos principais. No entanto, a classe Java Stack também tem ingresso a mais de 40 outros métodos, que herda da classe Vector.
Criando uma rima em Java
A classe Stack tem um único construtor que permite produzir uma rima vazia. Cada rima tem um argumento de tipo, que determina o tipo de dados que ele armazenará.
import java.util.Stack;public class Main {
public static void main(String[] args) {
Stack<String> Customers = new Stack<String>();
}
}
O código supra cria uma estrutura de dados Stack chamada Clientes que armazena valores de String.
Preenchendo uma rima
Um dos cinco métodos principais da classe Stack é o Empurre() método. Ele pega um único item que tem o mesmo tipo de dados que o Stack e o empurra para o topo do Stack.
Customers.push("Jane Doe");
Customers.push("John Doe");
Customers.push("Patrick Williams");
Customers.push("Paul Smith");
Customers.push("Erick Rowe");
Customers.push("Ella Jones");
Customers.push("Jessica Brown");
O código supra preenche a Rima de Clientes com sete itens. Ele empurra cada novo item para o topo da rima. Portanto, o item no topo da rima de clientes é Jessica Brown. E você pode confirmar isso usando o Stack olhadinha() método. o olhadinha() método não recebe argumentos. Ele retorna o objeto no topo da rima sem removê-lo.
System.out.println(Customers.peek());
O código supra retorna a seguinte saída para o console:
Jessica Brown
Exibir os itens em uma rima
A estrutura de dados da rima é bastante restritiva na forma uma vez que permite que você interaja com seus dados. Você deve usar principalmente uma rima por meio de seu item mais eminente. No entanto, você também pode usar métodos herdados da classe Vector para acessar elementos arbitrários. Esses métodos incluem elementAt e removeElementAt.
A maneira mais fácil de obter uma visão universal do texto de uma rima é simplesmente imprimi-la. Passe um objeto Stack para System.out.println e o método toString() do Stack produzirá um bom resumo:
System.out.println(Customers);
O código supra imprime a seguinte saída no console:
[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]
Procurando uma posição de item em uma rima
Se você conhece um item na Rima, pode identificar sua posição de índice ou sua posição relativa ao topo da Rima. o índice de() O método pega um item na rima e retorna sua posição de índice. Esteja cônscio de que um Stack começa a indexar seus itens em zero.
System.out.println(Customers.indexOf("Jane Doe"));
O código supra imprime a seguinte saída no console:
0
o procurar() é um dos métodos primários da classe Stack. Ele retorna uma posição do item em relação ao topo da rima, onde o item no topo da rima tem a posição número um.
System.out.println(Customers.search("Jane Doe"));
O código supra imprime a seguinte saída no console:
7
Se você fornecer o procurar() ou o índice de() métodos com um item que não está no Stack, eles retornarão um negativo.
System.out.println(Customers.search("Elsa Doe"));
System.out.println(Customers.indexOf("Elsa Doe"));
O código supra imprime a seguinte saída no console:
-1
-1
Atualizando itens em uma rima
Você só pode manipular um item no topo de uma rima. Portanto, se você quiser atualizar um elemento que não está no topo do Stack, você terá que pop todos os itens supra dele. o pop() é um dos métodos primários do Stack. o pop() método não recebe argumentos. Ele remove o item no topo da rima e o devolve.
Customers.pop();
Customers.pop();
Customers.push("Ella James");
Customers.push("Jessica Brown");
System.out.println(Customers);
O código supra imprime a seguinte saída no console:
[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella James, Jessica Brown]
Uma vez que você pode ver na saída, o código atualiza o sobrenome de Ella para James. Envolve um processo que retira itens da rima até chegar ao objeto de direcção. Em seguida, ele exibe o objeto de direcção; o atualiza; e o empurra, junto com os itens que estavam no topo do item de direcção, de volta à rima. Você terá que usar um programa que realize operações uma vez que a supra, cada vez que desejar atualizar um item em seu Stack.
Excluindo um item de uma rima
Para excluir um único item da estrutura de dados Stack, você pode usar novamente o método pop(). Se o item que você deseja excluir não estiver no topo, você pode sobresair os itens no topo até chegar ao desejado.
Excluindo todos os itens em uma rima
Para excluir todos os elementos de uma rima, você pode usar um loop while Java com o método pop() para excluir os elementos um de cada vez. Uma abordagem mais eficiente, no entanto, é usar o Simples() método. o Simples() é aquele que a classe Stack herda da classe Vector. Não recebe argumentos, não retorna zero, mas simplesmente remove todos os elementos da estrutura de dados Stack.
Customers.clear();
System.out.println(Customers.empty());
O código supra exclui todos os itens da rima de clientes. Em seguida, usa o vazio() método para verificar se a rima está vazia. o vazio() é outro método primordial da classe de rima Java. Não aceita argumentos e retorna um valor booleano. Leste método retorna true se o Stack estiver vazio e false caso contrário.
O código supra imprime a seguinte saída no console:
true
Aplicações práticas para a estrutura de dados de rima
A estrutura de dados Stack é muito restritiva. Ele não oferece tanta flexibilidade no processamento de dados quanto outras estruturas de dados. Isso levanta a questão: quando você deve usar a estrutura de dados Stack?
A estrutura de dados Stack é ideal para aplicativos que exigem processamento de dados em ordem inversa. Esses incluem:
- Um aplicativo que verifica se uma termo é um palíndromo.
- Um aplicativo que converte números decimais em números binários.
- Aplicativos que permitem aos usuários desfazer.
- Jogos que permitem ao usuário voltar a movimentos anteriores, uma vez que um jogo de xadrez.