Você está aqui: Java ::: Estruturas de Dados ::: Filas |
Como criar uma fila em Java usando um vetor de ints - Estruturas de Dados em JavaQuantidade de visualizações: 2180 vezes |
A Fila é uma estrutura de dados do tipo FIFO - First-In, First-Out (Primeiro a entrar, primeiro a sair). Neste tipo de estrutura, o primeiro elemento a ser inserido é o primeiro a ser removido. Funciona exatamente igual a fila de um banco, fila para comprar ingressos, fila para pagar no caixa da lanchonete, etc. Veja a imagem a seguir: Embora seja mais comum a criação de uma estrutura de dados do tipo Fila de forma dinâmica (usando ponteiros e referências), nesta dica eu mostrarei como podemos criá-la em Java usando um array, ou seja, um vetor. No exemplo eu usei inteiros, mas você pode modificar para o tipo de dados que você achar mais adequado. Veja o código completo para uma classe Fila usando um vetor de ints. Veja que o tamanho do vetor é informado no construtor da classe. Note também a lógica empregada na construção dos métodos enfileirar(), desenfileirar() e imprimirFila(): Código para Fila.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Fila { private int elementos[]; private int inicio; // início da fila private int fim; // fim da fila private int maximo; // quantidade máxima de elementos na fila // construtor da Fila que aceita o tamanho public Fila(int tamanho) { // constrói o vetor com o tamanho informado this.elementos = new int[tamanho]; this.inicio = 0; // define o início como sendo o primeiro elemento this.fim = -1; // fila vazia. Não tem final ainda this.maximo = tamanho; // ajusta a quantidade máxima de elementos } // método que permite enfileirar um novo elemento public void enfileirar(int item) { // a fila já está cheia if (this.fim == (this.maximo - 1)) { System.out.println("\nA fila está cheia.\n"); } // ainda há espaço na fila else { this.elementos[++this.fim] = item; } } // método que permite desenfileirar e retornar // o elemento no início da fila public int desenfileirar() { // a fila está vazia if (this.inicio == (this.fim + 1)) { System.out.println("\nA fila está vazia.\n"); return -1; } // retorna o elemento desenfileirado else { System.out.println("Elemento desenfileirado: " + this.elementos[this.inicio]); return this.elementos[this.inicio++]; } } // exibe os elementos da fila public void exibirFila() { // a fila está vazia if (this.inicio == (this.fim + 1)) { System.out.println("\nA fila está vazia.\n"); } else { for (int i = this.inicio; i <= this.fim; i++) { System.out.println("Item[" + (i + 1) + "]: " + this.elementos[i]); } } } } Veja agora o código para a classe principal, ou seja, a classe Principal usada para testar a funcionalidade da nossa fila: Código para Principal.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos { public static void main(String[] args) { // Vamos criar uma nova fila com espaço para 5 elementos Fila fila = new Fila(5); // vamos inserir 3 elementos na fila fila.enfileirar(34); fila.enfileirar(27); fila.enfileirar(11); // vamos imprimir a fila System.out.println("\nOs itens na fila são: "); fila.exibirFila(); // vamos desenfileirar dois itens System.out.println(); fila.desenfileirar(); fila.desenfileirar(); // vamos imprimir a fila novamente System.out.println("\nOs itens na fila são: "); fila.exibirFila(); } } Ao executar este código Java nós teremos o seguinte resultado: Os itens na fila são: Item[1]: 34 Item[2]: 27 Item[3]: 11 Elemento desenfileirado: 34 Elemento desenfileirado: 27 Os itens na fila são: Item[3]: 11 |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Pacote java.lang ::: Integer |
Java para iniciantes - Como usar o método parseInt() da classe Integer para converter uma String em um valor do tipo intQuantidade de visualizações: 95441 vezes |
Em algumas situações, principalmente quando estamos lidando com valores informados pelo usuário, nós precisamos converter uma String em um valor inteiro. Para isso podemos usar o método parseInt() da classe Integer. Veja sua assinatura: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public static int parseInt(String s) throws NumberFormatException A String fornecida como argumento deve conter apenas digitos decimais, exceto que o primeiro caractere pode ser o caractere ASCII sinal de menos "-" ('\u002D') para indicar um valor negativo ou o caractere ASCII sinal de mais "+" ('\u002B') para indicar um valor positivo. Veja um exemplo no qual usamos o método parseInt() para converter uma String informada pelo usuário em um valor do tipo int: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } } Ao executarmos este código teremos o seguinte resultado: Informe sua idade: 28 A idade informada foi: 28 Há, porém, situações nas quais o usuário pode não seguir as recomendações de não inserir caracteres inválidos, o que inviabiliza a conversão para inteiro. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Informe sua idade: osmar Exception in thread "main" java.lang.NumberFormatException: For input string: "osmar" at java.lang.NumberFormatException.forInputString(NumberFormatException. java:48) at java.lang.Integer.parseInt(Integer.java:447) at java.lang.Integer.parseInt(Integer.java:497) at Estudos.main(Estudos.java:10) Para contornar esta situação nós precisamos fornecer um bloco try...catch para tratar a exceção NumberFormatException. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); try{ int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } catch(NumberFormatException nfe){ System.out.println("Valor inválido: " + nfe.getMessage()); } } } Agora o programa exibirá uma mensagem de erro caso o usuário forneça uma String que não pode ser convertida para inteiro. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteirosQuantidade de visualizações: 8654 vezes |
Exercício Resolvido de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteiros Pergunta/Tarefa: O máximo divisor comum ou MDC (mdc) entre dois ou mais números inteiros é o maior número inteiro que é fator de tais números. Por exemplo, os divisores comuns de 12 e 18 são 1, 2, 3 e 6, logo mdc(12, 18) = 6. A definição abrange qualquer número de termos, por exemplo mdc(10, 15, 25, 30) = 5. O cálculo do MDC entre x e y pode ser feito recursivamente da seguinte forma: Se y for igual a 0, então mdc(x, y) = x. Caso contrário, mdc(x, y) = mdc(y, x % y), no qual % é o operador de módulo (restante da divisão inteira). Escreva um método recursivo que receba dois inteiros e calcule o mdc. Seu método deverá possuir a seguinte assinatura: public static int mdc(int x, int y){ // sua implementação aqui } Informe o primeiro inteiro: 12 Informe o segundo inteiro: 18 O MDC dos valores 12 e 18 é 6 Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar dois valores inteiros System.out.print("Informe o primeiro inteiro: "); // lê o primeiro inteiro int a = Integer.parseInt(entrada.nextLine()); // solicita o segundo inteiro System.out.print("Informe o segundo inteiro: "); // lê o segundo inteiro int b = Integer.parseInt(entrada.nextLine()); // mostra o resultado System.out.print("O MDC dos valores " + a + " e " + b + " é " + mdc(a, b)); System.out.println("\n"); } // método recursivo que calcula o mdc de dois inteiros public static int mdc(int x, int y){ // a recursividade é interrompida quando y for igual a 0 if(y == 0){ return x; } else{ return mdc(y, x % y); // efetua uma nova chamada recursiva } } } |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar e inicializar um vetor de strings em JavaQuantidade de visualizações: 45157 vezes |
Nesta dica mostrarei como podemos declarar, criar e inicializar os valores dos elementos de um array (vetor) de strings na linguagem Java. Em seguida nós usaremos o laço for melhorado do Java para exibir os elementos do vetor. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args){ // cria um array de cinco elementos String[] pessoas = {"Fábio", "Fernanda", "Francisco", "João", "Osmar"}; // exibe os valores usando o for // melhorado (enhanced for loop) da // versão 5.0 for(String pessoa: pessoas){ System.out.println(pessoa); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Fábio Fernanda Francisco João Osmar Lembre-se de que vetor e array são as mesmas coisas. Em algumas situações, um array pode também ser chamado de matriz. |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de extremidade É importante detalhar as armaduras longitudinais e transversais de um pilar de extremidade durante a concretagem dessas estruturas, evitando futuras patologias. Para isso, é importante que o projetista atenda aos requisitos normativos desse detalhamento. Sobre o detalhamento de armaduras de pilares de extremidade, assinale a alternativa correta. A) O máximo espaçamento permitido entre as barras longitudinais corresponde a 500mm. B) O espaçamento mínimo permitido entre as barras transversais corresponde a 5mm. C) O diâmetro da armadura transversal deve ser maior ou igual a 5mm ou 1/4 do diâmetro da barra longitudinal. D) O diâmetro máximo da barra longitudinal corresponde a 12,5mm e a 1/8 da barra transversal. E) Para armaduras de aço CA-50, o espaçamento vertical corresponde a 25 vezes o diâmetro da barra transversal. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação da continuidade Um Boeing 747 (figura) tem em torno de 500 m2 de área alar (área total das duas asas). Considere que ele está se movendo a 230 m/s em relação ao ar. As linhas de fluxo acima da asa estão comprimidas em 80% de sua área original. As linhas de fluxo abaixo da asa não estão comprimidas. Calcule a força resultante devido à pressão à qual o Boeing está submetido. Considere a densidade do ar na altitude em que o Boeing está voando ρar = 0,40 kg/m3. A) 1,27 x 106 N B) 5,91 kN C) 2,98 x 106 N D) 2,20 x 106 N E) 3,48 x 106 N Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Estrutura e propriedade dos materiais A compreensão de muitas propriedades físicas dos materiais baseia-se no entendimento das forças existentes entre as moléculas. Em relação às ligações atômicas, assinale a alternativa correta. A) Cada ligação tem por objetivo fazer com que os átomos adquiram ligações metálicas. B) As ligações não costumam ocorrer concomitantemente em um mesmo material. C) Há três tipos de ligações diferentes: iônica, covalente e a força de Van der Waals. D) As ligações atômicas em alguns materiais podem ser puramente iônicas ou covalentes. E) A ligação metálica se dá por meio de uma aproximação muito intensa dos elementos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Ações em estruturas: apresentação dos principais carregamentos na análise de estruturas convencionais As variações de temperatura causam ações nas estruturas. Tanto isso é verdade que é recomendado, em lajes com área grande, as tão conhecidas juntas de dilatação para evitar que ocorram fissuras no concreto devido às deformações causadas pelo carregamento térmico. A ação devido às variações de temperatura é classificada como? A) Ação acidental direta. B) Ação permanente indireta. C) Ação permanente direta. D) Ação acidental indireta. E) Ação excepcional. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Vantagens e Desvantagens do Concreto Armado O concreto simples é formado pela mistura entre cimento, agregados (miúdos e graúdos) e água. A junção de barras de aço na forma de armaduras com esse material resulta no concreto armado. Com relação às vantagens da utilização do concreto armado, analise as afirmações a seguir: I. Os processos de construção de estruturas de concreto armado são conhecidos, e a sua execução não exige mão de obra com elevado nível de qualificação. II. A grande massa e a rigidez dos elementos de concreto armado minimizam os efeitos de vibrações e oscilações decorrentes do vento e de utilização. III. Pelo fato de as estruturas de concreto serem monolíticas, elas apresentam facilidade em serem moldadas. Qual(is) está(ão) correta(s)? A) Apenas I. B) Apenas II. C) Apenas III. D) I e II. E) II e III. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |