Você está aqui: Java ::: Coleções (Collections) ::: ArrayList |
Como ordernar uma ArrayList de Strings em ordem alfabética usando o método sort() da classe Collections da linguagem JavaQuantidade de visualizações: 22673 vezes |
Neste exemplo mostrarei como podemos ordenar um ArrayList de Strings em ordem alfabética. Para isso usaremos o método sort() da classe Collections. É importante observar que estou usando String no exemplo. Se você quiser usar objetos de suas próprias classes, elas precisarão implementar a interface Comparable. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.ArrayList; import java.util.Collections; 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"); // exibe os elementos da ArrayList for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } // Vamos ordenar os elementos Collections.sort(nomes); // exibe os elementos da ArrayList System.out.println(); for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Carlos Maria Fernanda Osmar Carlos Fernanda Maria Osmar Este código foi testado no Java 8. |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em Java usando o método sin() da classe MathQuantidade de visualizações: 2957 vezes |
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem: Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem Java. Esta método, que faz parte da classe Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ System.out.println("Seno de 0 = " + Math.sin(0)); System.out.println("Seno de 1 = " + Math.sin(1)); System.out.println("Seno de 2 = " + Math.sin(2)); } } Ao executar este código Java nós teremos o seguinte resultado: Seno de 0 = 0.0 Seno de 1 = 0.8414709848078965 Seno de 2 = 0.9092974268256817 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Apostila Java para iniciantes - Como substituir um caractere em uma string usando o método setCharAt() da classe StringBuffer do JavaQuantidade de visualizações: 20 vezes |
Nesta dica mostrarei como podemos usar o método setCharAt() da classe StringBuffer da linguagem Java para substituir caracteres individuais em uma palavra, frase ou texto. Veja um código completo, no qual trocamos a letra "j" por "J": ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Programar em java."); System.out.println(frase); frase.setCharAt(13, 'J'); // troca 'j' por 'J' System.out.println(frase); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Programar em java. Programar em Java. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercício Resolvido de Java - Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando vetor temporárioQuantidade de visualizações: 537 vezes |
Pergunta/Tarefa: Dado o vetor: // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; Importante: a solução que apresentamos usa um array adicional para resolver o desafio. Fique à vontade para usar força-bruta ou outra abordagem que achar mais conveniente. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Rotação do vetor no passo 1 do primeiro laço: 8 0 0 0 0 0 0 0 Rotação do vetor no passo 2 do primeiro laço: 8 5 0 0 0 0 0 0 Rotação do vetor no passo 3 do primeiro laço: 8 5 2 0 0 0 0 0 Rotação do vetor no passo 1 do segundo laço: 8 5 2 1 0 0 0 0 Rotação do vetor no passo 2 do segundo laço: 8 5 2 1 6 0 0 0 Rotação do vetor no passo 3 do segundo laço: 8 5 2 1 6 9 0 0 Rotação do vetor no passo 4 do segundo laço: 8 5 2 1 6 9 3 0 Rotação do vetor no passo 5 do segundo laço: 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em 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 um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; // mostramos o array na ordem original System.out.println("Array na ordem original:"); exibirVetor(valores); // vamos rotacionar o array 3 casas para a direita valores = rotacionarArray(valores, 3); // e mostramos o resultado System.out.println("Array depois de rotacionar 3 vezes:"); exibirVetor(valores); } // método usado para exibir o array public static void exibirVetor(int []vetor){ // percorremos cada elemento do vetor for (int i = 0; i < vetor.length; i++) { System.out.print(vetor[i] + " "); } System.out.println("\n"); } // método que recebe um vetor de inteiros e o rotaciona um // determinado número de vezes public static int[] rotacionarArray(int[] vetor, int n) { // vamos obter a quantidade de elementos no vetor int quant = vetor.length; // o número de rotações é maior que a quantidade de // elementos no vetor? Se for nós ajustamos o número // de rotações usando o operador de módulo if(n > quant){ n = n % quant; } // criamos um vetor temporário int[] resultado = new int[quant]; // o primeiro laço movimenta os elementos a partir // do valor de n for(int i = 0; i < n; i++){ resultado[i] = vetor[quant - n + i]; // mostramos o progresso System.out.println("Rotação do vetor no passo " + (i + 1) + " do primeiro laço:"); exibirVetor(resultado); } // ajustamos o índice para o primeiro elemento do vetor int indice = 0; for(int i = n; i < quant; i++){ resultado[i] = vetor[indice]; // mostramos o progresso System.out.println("Rotação do vetor no passo " + (indice + 1) + " do segundo laço:"); exibirVetor(resultado); indice++; // incrementa o índice } // retorna o vetor rotacionado return resultado; } } A solução que apresentamos aqui usa um vetor temporário, isto é, um array adicional, para melhorar a perfomance. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalações prediais de águas pluviais Um professor de engenharia que gostava de fazer os alunos pensarem ativamente e questionarem a base das tabelas e ábacos fez uma pergunta em classe a partir dos ábacos da NBR 10844 de instalações prediais de águas pluviais: por que os ábacos com saída do tipo aresta viva fornecem maiores diâmetros que as do tipo funil? Cinco principais explicações foram fornecidas pelas classes, mas apenas uma estava correta. Marque a opção que explica corretamente o fenômeno. A) As saídas do tipo aresta viva fornecem maior capacidade de escoamento por permitir maior lâmina de água imediatamente sobre a entrada. B) As saídas do tipo funil geram aumento da perda de carga, ocasionando uma redução da capacidade hidráulica, que é, então, expressa no ábaco. C) As saídas em aresta viva geram uma incorporação de ar indesejada ao escoamento, ocasionando um efeito de sucção que reduz a capacidade hidráulica. D) As saídas do tipo funil necessitam de maior altura até chegar ao diâmetro da tubulação e isso é compensado em relação ao parâmetro L do ábaco. E) As saídas em arestas vivas têm menor perda de carga, o que implica a incorporação de ar com consequente redução da capacidade hidráulica. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Froude O número de Froude (Fr) é um coeficiente adimensional, frequentemente utilizado na hidráulica de condutos abertos para determinar a classificação do regime que o escoamento livre apresenta. Quando o Fr é igual a 1, o regime é classificado como crítico; com Fr > 1, o regime é supercrítico; e com Fr < 1, o regime é subcrítico. Sobre esta classificação afirma-se que: A) No regime crítico há equílibrio de forças e a velocidade é menor que a celeridade. B) No regime supercrítico, o escoamento é mais influenciado pelas forças gravitacionais. C) No regime supercrítico, o escoamento é regido pelas energias cinéticas e inerciais. D) No regime subcrítico ou torrencial, as forças gravitacionais regem o escoamento. E) No regime crítico não há equilíbrio entre as energias que influenciam o escoamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas A elevação de paredes em alvenaria deve: A) Iniciar no meio do vão em direção aos cantos. B) Iniciar do lado direito para o lado esquerdo. C) Iniciar do lado esquerdo para o lado direito. D) Iniciar dos cantos, ou junto ao pilares, em direção ao centro. E) Iniciar pelos cantos, em toda a altura do pé-direito, e depois seguir em direção ao centro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
A linguagem JavaScript diferencia letras maiúsculas de letras minúsculas (case-sensitive)? A) Sim B) Não Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação de Manning A equação de Manning é uma expressão empírica que se aplica ao fluxo uniforme em canais abertos, relacionando a velocidade do fluido, a área da seção e a inclinação do canal. Sobre a fórmula de Manning, selecione a alternativa correta. A) O valor do coeficiente de rugosidade n representa a perda de carga localizada, uma vez que se refere à interferência do atrito nas paredes das tubulações e canais de condução de fluidos. B) A fórmula de Manning só apresenta resultados precisos para canais naturais, sendo os artificiais complexos, pois o coeficiente de rugosidade n varia na produção do material. C) O valor do coeficiente de rugosidade n representa a perda de carga distribuída atribuída ao atrito e é sempre calculado em campo para que erros associados a ele sejam minimizados. D) Em canais artificiais, o valor do coeficiente de Manning n representa a perda de carga causada apenas pelas paredes, se fazendo necessário aplicar uma correção para o fundo do canal. E) A fórmula de Manning fornece resultados confiáveis para os canais naturais ou artificiais e o coeficiente de rugosidade n representa a perda de carga distribuída relacionada ao atrito. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e 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 |