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: 2134 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 ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como somar os elementos da diagonal principal de uma matriz em JavaQuantidade de visualizações: 2748 vezes |
A Matriz quadrada é um tipo especial de matriz que possui o mesmo número de linhas e o mesmo número de colunas, ou seja, dada uma matriz Anxm, ela será uma matriz quadrada se, e somente se, n = m, onde n é o número de linhas e m é o número de colunas. Em geral as matrizes quadradas são chamadas de Matrizes de Ordem n, onde n é o número de linhas e colunas. Dessa forma, uma matriz de ordem 4 é uma matriz que possui 4 linhas e quatro colunas. Toda matriz quadrada possui duas diagonais, e elas são muito exploradas tanto na matemática quanto na construção de algorítmos. Essas duas diagonais são chamadas de Diagonal Principal e Diagonal Secundária. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito. Veja: Nesta dica veremos como calcular a soma dos valores dos elementos da diagonal principal de uma matriz usando Java. Para isso, só precisamos manter em mente que a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. Assim, tudo que temos a fazer é converter essa regra para código Java. Veja um trecho de código Java completo no qual pedimos para o usuário informar os elementos da matriz e em seguida mostramos a soma dos elementos da diagonal superior: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String[] args) { // vamos fazer a leitura usando a classe Scanner Scanner entrada = new Scanner(System.in); // vamos declarar e construir uma matriz de três linhas e três colunas int matriz[][] = new int[3][3]; int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal // vamos ler os valores para os elementos da matriz for(int i = 0; i < matriz.length; i++){ // linhas for(int j = 0; j < matriz[0].length; j++){ // colunas System.out.print("Informe o valor para a linha " + i + " e coluna " + j + ": "); matriz[i][j] = Integer.parseInt(entrada.nextLine()); } } // vamos mostrar a matriz da forma que ela // foi informada System.out.println(); // percorre as linhas for(int i = 0; i < matriz.length; i++){ // percorre as colunas for(int j = 0; j < matriz[0].length; j++){ System.out.printf("%5d ", matriz[i][j]); } // passa para a próxima linha da matriz System.out.println(); } // vamos calcular a soma dos elementos da diagonal // principal for(int i = 0; i < matriz.length; i++){ for(int j = 0; j < matriz[0].length; j++){ if(i == j){ soma_diagonal = soma_diagonal + matriz[i][j]; } } } // finalmente mostramos a soma da diagonal principal System.out.println("\nA soma dos elementos da diagonal principal é: " + soma_diagonal); } } Ao executar este código Java nós teremos o seguinte resultado: Informe o valor para a linha 0 e coluna 0: 3 Informe o valor para a linha 0 e coluna 1: 7 Informe o valor para a linha 0 e coluna 2: 9 Informe o valor para a linha 1 e coluna 0: 2 Informe o valor para a linha 1 e coluna 1: 4 Informe o valor para a linha 1 e coluna 2: 1 Informe o valor para a linha 2 e coluna 0: 5 Informe o valor para a linha 2 e coluna 1: 6 Informe o valor para a linha 2 e coluna 2: 8 3 7 9 2 4 1 5 6 8 A soma dos elementos da diagonal principal é: 15 |
Java ::: Coleções (Collections) ::: ArrayList |
Como testar se a ArrayList do Java está vazia usando a função isEmpty() - Java ArrayList para iniciantesQuantidade de visualizações: 18591 vezes |
Neste exemplo mostrarei como usar o método isEmpty() da classe ArrayList para verificar se a lista está vazia, ou seja, não contem nenhum elemento. Este método retorna true se a ArrayList estiver vazia e false em caso contrário. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos_java; import java.util.ArrayList; public class Estudos{ public static void main(String[] args){ // cria uma ArrayList que conterá strings ArrayList<String> nomes = new ArrayList<>(); // adiciona itens na lista nomes.add("Carlos"); nomes.add("Maria"); nomes.add("Fernanda"); nomes.add("Osmar"); nomes.add("Maria"); // Verifica se a ArrayList está vazia if(nomes.isEmpty()){ System.out.println("A ArrayList está vazia."); } else{ System.out.println("A ArrayList não está vazia."); } System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A ArrayList não está vazia. |
Java ::: Pacote java.lang ::: Integer |
Java Básico - Como usar a constante SIZE da classe Integer para obter a quantidade de bits necessária para armazenar um intQuantidade de visualizações: 6669 vezes |
Em algumas situações gostaríamos de obter a quantidade de bits necessária para armazenar um valor do tipo int (inteiro). Para isso podemos usar a constante SIZE da classe Integer (uma classe wrapper que encapsula o valor primitivo int). Veja como isso pode ser feito:---------------------------------------------------------------------- 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) { // vamos obter a quantidade de bits necessária para representar um int int quantBits = Integer.SIZE; // o resultado System.out.println("Um int ocupa " + quantBits + " bits, ou seja, " + (quantBits / 8) + " bytes"); } } Ao executarmos este código o resultado será: Um int ocupa 32 bits, ou seja, 4 bytes. |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Introdução à Ética Entre os estudos proeminentes sobre a definição da ética, da moral, sua presença e importância entre os seres humanos racionalmente organizados em sistemas sociais, as sociedades, estão as análises e reflexões dos filósofos da Grécia Antiga. Embora cada um, entre expoentes como Platão, Aristóteles e Sócrates, tivesse uma proposta de interpretação para a moral e para a ética, é possível dizer que há uma percepção comum: a de que a "A ética é a morada do homem". O que isso significa? A) A moradia física para o grego era a base da sociedade, em torno da qual circundavam os demais significados socialmente apreendidos, então, ser ético era ser bom. B) Morada é um recanto simples onde o homem pode viver com honestidade, e ser uma pessoa ética é ser honesto. C) O sentido de morada era conceito existencial, confiado ao cidadão que, vivendo conforme normas e leis existentes, teria a segurança de uma vida ética. D) Assim como o mito da caverna, a lenda da morada também é falsa e se destina à formação de exemplos aos estudantes de filosofia da atualidade. E) Aristóteles escreveu essa máxima pensando em todos os habitantes da Grécia, que exibiam a igualdade de comportamento, pensamento e opinião política. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil dos prepostos e preponentes Considera-se ___________ a entrega de papéis, bens ou valores ao ____________, encarregado pelo __________, se os recebeu sem ______________, salvo nos casos em que haja prazo para reclamação. Qual opção abaixo preenche corretamente as lacunas? A) Perfeita - preponente - preposto - protesto. B) Inválida - preponente - preposto - protesto. C) Inválida - preposto - preponente - protocolo. D) Perfeita - preposto - preponente - protocolo. E) Perfeita - preposto - preponente - protesto. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Reynolds O parâmetro que determina se o regime de escoamento de um fluido é laminar ou turbulento recebe o nome de "número de Reynolds". Nesse contexto, analise as seguintes afirmativas com (V) para as verdadeiras e (F) para as falsas. ( ) I. Quando Re ≤ Re,Crítico , o escoamento é considerado turbulento. ( ) II. O escoamento turbulento é caracterizado por camadas paralelas. ( ) III. O escoamento turbulento é aquele em que as partículas do fluido se misturam rapidamente enquanto se movimentam. ( ) IV. O número de Reynolds pode ser calculado pela equação: Re = γ × g × V. ( ) V. Para tubos com paredes lisas, Re,Crítico = 40.000. Marque a alternativa com a ordem correta. A) V, F, F, V, F. B) V, F, V, F, F. C) F, F, V, F, V. D) F, V, F, V, V. E) V, V, V, F, F. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Como encontrar o maior valor entre x e y em JavaScript? A) ceil(x, y) B) top(x, y) C) Math.max(x, y) D) Math.ceil(x, y) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Sondagem à Percussão (SPT) e Rotativa (RQD) Um boletim de sondagem SPT está indicando uma camada de solo residual de granito de 4m com N variando de 3 a 8 golpes. Atingido os 4m, verificou-se que o solo é impenetrável à percussão. O engenheiro solicitou que fizesse outro ensaio ao lado daquele (2m) e o perfil obtido foi de uma camada de solo variando de 3 a 25 golpes até a profundidade de 8m. O que o engenheiro pretendeu comprovar, realizando outro ensaio logo ao lado do primeiro? A) A tentativa foi de comprovar que o solo era de péssima qualidade. B) A tentativa foi de comprovar que se tratava de um solo com uma camada de menor resistência logo abaixo. C) A tentativa foi de provar que se tratava de argilas de consistência mole. D) A tentativa foi de comprovar que no solo residual de granito podem ocorrer matacões. E) A tentativa foi de comprovar que o ensaio SPT não é eficiente para solos residuais. 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 |
React.js - Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-app |
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 |