Você está aqui: Java ::: Coleções (Collections) ::: HashMap |
Copiando todos os mapeamentos de um Map para outro HashMapQuantidade de visualizações: 8055 vezes |
Em algumas situações nós temos mapeamentos em coleções que implementam a interface Map e gostaríamos de copiar todos estes mapeamentos para um HashMap já existente. Isso pode ser feito por meio do uso do método putAll(), definido originalmente na interface Map. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public void putAll(Map<? extends K,? extends V> m) Note que este método aceita qualquer coleção que implemente a interface Map ou herde de alguma classe que o faça. Note que, se houver chaves iguais nas duas coleções, o valor associado à chave pertencente à coleção cujos mapeamentos estão sendo copiados sobreporá o valor associado à chave já existente na coleção alvo da operação. Veja o exemplo abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String[] args){ // vamos criar uma instância de HashMap HashMap<Integer, String> clientes = new HashMap<Integer, String>(); // vamos adicionar três chaves e seus valores clientes.put(new Integer(1), "Osmar J. Silva"); clientes.put(new Integer(2), "Salvador Miranda de Andrade"); clientes.put(new Integer(3), "Marcos da Costa Santos"); // vamos criar uma nova instância de HashMap HashMap<Integer, String> clientes2 = new HashMap<Integer, String>(); // vamos adicionar três chaves e seus valores clientes2.put(new Integer(8), "Igor Bruno de Oliveira"); clientes2.put(new Integer(2), "Maria Carvalho"); // adicionar o segundo HashMap ao primeiro. Note que o segundo // HashMap contém uma chave similar a uma chave já existente no // primeiro HashMap clientes.putAll(clientes2); // vamos obter uma view dos mapeamentos do primeiro HashMap Set set = clientes.entrySet(); // obtemos um iterador Iterator i = set.iterator(); // e finalmente exibimos todas as chaves e seus valores while(i.hasNext()){ Map.Entry entrada = (Map.Entry)i.next(); System.out.println("Código: " + entrada.getKey() + " - Cliente: " + entrada.getValue()); } System.exit(0); } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Topografia e Geoprocessamento ::: Passos Iniciais |
Como converter graus, minutos e segundos para graus decimais em JavaQuantidade de visualizações: 410 vezes |
Em algumas situações, principalmente em cálculos da Engenharia Civil e Topografia, nós precisamos converter graus, minutos e segundos para graus decimais. É comum chamarmos graus, minutos e segundos de DMS ou GMS, enquanto os graus decimais são chamados de UTM. Nesta dica veremos como converter 85º 42' 13.75'' para graus decimais. A fórmula que usaremos é a seguinte: \[\text{Graus decimais} = \text{Graus} + \frac{\text{Minutos}}{60} + \frac{\text{Segundos}}{3600} \] Veja agora o código Java completo que pede para o usuário informar os graus, os minutos e os segundos e mostra os graus decimais: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os graus, minutos // e segundos System.out.print("Informe os graus: "); double graus = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os minutos: "); double minutos = Double.parseDouble(entrada.nextLine()); System.out.print("Informe os segundos: "); double segundos = Double.parseDouble(entrada.nextLine()); // agora vamos calcular os graus decimais double grausDecimais = graus + (minutos / 60.0) + (segundos / 3600.0); // e agora mostramos o resultado System.out.println("Os graus decimais são: " + grausDecimais); } } Ao executar este código Java nós teremos o seguinte resultado: Informe os graus: 85 Informe os minutos: 42 Informe os segundos: 13.75 Os graus decimais são: 85.70381944444445 Fique atento ao sinal. Se o valor em graus, minutos e segundos possuir os caracteres "W" ou "S", então o valor em graus decimais deverá levar o sinal de negativo. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico |
Exercícios Resolvidos de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversaQuantidade de visualizações: 15878 vezes |
Exercício Resolvido de Java - Ler um número de três dígitos, separá-lo e invertê-lo, escrevendo o número lido e sua forma inversa Pergunta/Tarefa: Escreva um programa Java console ou GUI que leia um número de 3 dígitos e o inverta, escrevendo o número lido e o invertido. Por exemplo, se o usuário informar o valor 753, seu programa deverá invertê-lo, resultando em 357. Seu programa deverá exibir a seguinte saída: Informe um valor inteiro de três dígitos: 753 O valor original é: 753 O valor invertido é: 357 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) ---------------------------------------------------------------------- public static void main(String[] args){ // não se esqueça de adicionar um import para a classe Scanner // import java.util.Scanner; // vamos criar um objeto da classe Scanner Scanner entrada = new Scanner(System.in); // vamos solicitar ao usuário que informe um valor inteiro // na faixa 100 a 999 (incluindo) System.out.print("Informe um valor inteiro de três dígitos: "); // vamos ler o valor informado int valor = Integer.parseInt(entrada.next()); // vamos verificar se o valor está na faixa permitida if(valor < 100 || valor > 999){ System.out.println("Valor fora da faixa permitida"); System.exit(0); } // vamos criar uma variável temporária para manter intacto o valor lido int temp = valor; int inverso = 0; // guardará o valor invertido // vamos inverter o valor agora while(temp != 0){ inverso = (inverso * 10) + (temp % 10); temp = temp / 10; } // vamos mostrar o resultado System.out.println("O valor original é: " + valor); System.out.println("O valor invertido é: " + inverso); } |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Java - Como testar se um ano é bissexto em Java - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 2438 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Java que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. 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 estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar que o usuário informe um ano System.out.print("Informe o ano: "); int ano = Integer.parseInt(entrada.nextLine()); // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ System.out.println("O ano informado é bissexto."); } else{ System.out.println("O ano informado não é bissexto."); } System.out.println("\n"); } } |
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 - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C |
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 |