Você está aqui: Java ::: Coleções (Collections) ::: HashSet

Como remover itens duplicados de uma ArrayList usando um objeto da classe HashSet do Java

Quantidade de visualizações: 417 vezes
Nesta dica mostrarei como podemos usar um objeto da classe HashSet, que implementa a interface Set, para remover duplicidade de elementos em uma ArrayList. É importante observar que a ordem de inserção em um HashSet nem sempre é respeitada.

Isso quer dizer que, após a remoção dos itens repetidos do ArrayList, a ordem gerada pode ser diferente da ordem original dos elementos.

Veja o código Java completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.ArrayList;
import java.util.HashSet;

public class Estudos {
  public static void main(String[] args) {
    // vamos criar uma ArrayList de linguagens de programação
    ArrayList<String> lista = new ArrayList<>();
    
    // vamos adicionar alguns elementos no ArrayList. Note
    // que temos itens repetidos
    lista.add("Java");
    lista.add("Scala");
    lista.add("Ruby");
    lista.add("Scala");
    lista.add("Python");
    lista.add("Ruby");
    lista.add("Delphi");
 
    // vamos mostrar o conteúdo do ArrayList
    System.out.println("O conteúdo do ArrayList é: " +
      lista.toString());
    
    // vamos construir um objeto da classe HashSet
    HashSet<String> set = new HashSet<>(lista);
 
    // agora construímos uma nova ArrayList sem duplicidade usando
    // o objeto HashSet
    ArrayList<String> lista2 = new ArrayList<>(set);
 
    // e mostramos o resultado
    System.out.println("ArrayList sem repetições: " +
      lista2.toString());
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

O conteúdo do ArrayList é: [Java, Scala, Ruby, Scala, Python, Ruby, Delphi]
ArrayList sem repetições: [Java, Scala, Ruby, Delphi, Python]

Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercícios Resolvidos de Java - Escreva um programa Java para mover todos os zeros para o final do vetor, sem alterar a ordem dos elementos já presentes no array

Quantidade de visualizações: 560 vezes
Pergunta/Tarefa:

Dado o seguinte vetor de inteiros:

// vamos declarar e construir um vetor de 8 inteiros
int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
Escreva um programa Java para mover todos os zeros para o final do vetor, ou seja, para a direita, sem alterar a ordem dos elementos diferentes de zero já presentes no array e sem criar um vetor adicional ou temporário.

Sua saída deverá ser parecida com:

Vetor na ordem original:

0   3   0   5   7   4   0   9   

Vetor com os zeros deslocados para o final:

3   5   7   4   9   0   0   0
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicio;

public class Exercicio {
  public static void main(String[] args) {
    // vamos declarar e construir um vetor de 8 inteiros
    int valores[] = {0, 3, 0, 5, 7, 4, 0, 9};
    
    // vamos mostrar o vetor na ordem original
    System.out.println("Vetor na ordem original:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "   ");
    }
    
    // vamos inicializar j como 0 para que ele aponte para
    // o primeiro elemento do vetor
    int j = 0;
    
    // agora o laço for percorre todos os elementos do vetor,
    // incrementanto a variável i e deixando o j em 0
    for(int i = 0; i < valores.length; i++){
      // encontramos um valor que não é 0
      if(valores[i] != 0){
        // fazemos a troca entre os elementos nos índices
        // i e j
        int temp = valores[i];
        valores[i] = valores[j];
        valores[j] = temp;
        // e avançamos o j para o elemento seguinte
        j++;
      }
    }
    
    // agora mostramos o resultado
    System.out.println("\n\nVetor com os zeros deslocados para o final:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "   ");
    }
    
    System.out.println();
  }
}

Não se esqueça: A resolução do exercício deve ser feita sem a criação de um vetor, array ou lista adicional, e os elementos diferentes de zero devem permanecer na mesma ordem que eles estavam antes.


Java ::: Dicas & Truques ::: Mouse e Teclado

Java Avançado - Como verificar se a tecla Caps Lock está ativada usando o método getLockingKeyState() da classe Toolkit do Java

Quantidade de visualizações: 11241 vezes
Nesta dica mostrarei como é possível usar o método getLockingKeyState() da classe Toolkit da linguagem Java para verificar se a tecla Caps Lock estão ou não ativada no seu computador. Note o valor KeyEvent.VK_CAPS_LOCK sendo passado para o método.

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)
----------------------------------------------------------------------

package arquivodecodigos;

import java.awt.Toolkit;
import java.awt.event.*;
 
public class Estudos{
  public static void main(String[] args){
    Toolkit tk = Toolkit.getDefaultToolkit();    
     
    if(tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK))
      System.out.println("A tecla Caps Lock está ativada");  
    else
      System.out.println("A tecla Caps Lock não está ativada");    
 
    System.exit(0);
  }
}

Ao executarmos este código você verá uma mensagem parecida com:

A tecla Caps Lock está ativada


Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular o produto escalar entre dois vetores usando Java - Geometria Analítica e Álgebra Linear usando Java

Quantidade de visualizações: 2982 vezes
O produto escalar (em inglês: dot product) entre dois vetores é um número real que relaciona o comprimento desses dois vetores e o ângulo formado por eles. É importante notar que alguns autores se referem ao produto escalar como produto interno.

Obtém-se o produto escalar entre dois vetores, no R2, ou três vetores, no R3, por meio da fórmula a seguir (assumindo dois vetores __$\vec{u} = (a, b)__$ e __$\vec{v} = (c, d)__$ no R2).

\[\vec{u} \cdot \vec{v} = a \cdot c + b \cdot d \]

Vamos agora a um exemplo prático. Veja a imagem abaixo, na qual temos dois vetores, com suas coordenadas e magnitudes (módulo, comprimento ou norma):



Note que ambos os vetores possuem como origem as coordenadas (0, 0). O primeiro vetor possui as coordenadas finais (4, 10) e magnitude 11, e o segundo vetor possui as coordenadas finais (11, 6) e magnitude 13. Magnitude é o tamanho do vetor, ou seja, seu comprimento, seu módulo ou norma.

Veja agora o código Java completo que lê as coordenadas dos dois vetores e calcula e mostra o produto escalar entre eles:

----------------------------------------------------------------------
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){
    Scanner entrada = new Scanner(System.in);
    
    // x e y do primeiro vetor
    System.out.print("Coordenada x do primeiro vetor: ");
    float x1 = Float.parseFloat(entrada.nextLine());
    System.out.print("Coordenada y do primeiro vetor: ");
    float y1 = Float.parseFloat(entrada.nextLine());
    
    // x e y do segundo ponto
    System.out.print("Coordenada x do segundo vetor: ");
    float x2 = Float.parseFloat(entrada.nextLine());
    System.out.print("Coordenada y do segundo vetor: ");
    float y2 = Float.parseFloat(entrada.nextLine());    
    
    // vamos calcular o produto escalar
    float pEscalar = (x1 * x2) + (y1 * y2);
    
    // mostramos o resultado
    System.out.println("O produto escalar é: " + pEscalar);
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Coordenada x do primeiro vetor: 4
Coordenada y do primeiro vetor: 10
Coordenada x do segundo vetor: 11
Coordenada y do segundo vetor: 6
O produto escalar é: 104.0


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Evolução das estruturas

Até o início do século XIX os metais exerciam uma função estrutural limitada nas edificações. O aço em abundância e econômico tornou-se disponível pela primeira vez na década de 1850. Assinale a opção correta quanto aos motivos que levaram à expansão da utilização de elementos metálicos em estruturas:

Selecione a resposta:

A) A utilização do ferro forjado e o sentido estético da época levaram a maior utilização da estrutura metálica.

B) Devido à introdução do Processo Bessemer, em que grandes quantidades de ferro podiam ser transformadas em aço, em aproximadamente 20 minutos resultando em um metal com propriedades estruturais bastante superiores ao do ferro fundido.

C) A carência de profissionais capacitados, artesãos, em trabalhar a alvenaria de pedra como elemento estrutural levaram a uma mudança em termos de tecnologia estrutural, havendo a utilização da estrutura metálica em larga escala.

D) O incremento da urbanização e a necessidade da rapidez na construção de casas para as pessoas que vinham para as cidades trabalhar nas fábricas levaram à larga utilização da estrutura metálica, reduzindo assim, o seu custo.

E) A verticalização das cidades e a ousadia dos arquitetos e dos construtores de se construir edifícios cada vez mais altos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Raio Hidráulico

Ano: 2019 Banca: Instituto Consulplan Órgão: Prefeitura de Pitangueiras - SP Prova: Instituto Consulplan - 2019 - Prefeitura de Pitangueiras - SP - Engenheiro Civil

O Raio Hidráulico é a relação entre a área molhada e o perímetro molhado, sendo parâmetro importante no dimensionamento de canais, tubos, dutos e outros componentes das obras hidráulicas. Sua unidade no SI é o metro (m2/m = m). Na figura é ilustrado um canal trapezoidal aberto (figura A), e à sua direita (figura B) as dimensões de sua seção transversal em um determinado trecho do seu percurso.



Para a seção transversal do canal, assinale, a seguir, o valor do raio hidráulico.

A) 0,26 m.

B) 0,47 m.

C) 1,26 m.

D) 2,12 m.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética, Legislação e Entidades que regulamentam a profissão

No ambiente corporativo você pode deparar-se com comportamentos ou sinais de condutas antiéticas. Com base nos ensinamentos estudados no livro, qual é a forma mais apropriada de identificar um sinal de comportamento antiético?

A) Coletando fatos e comparando-os com padrões éticos.

B) A partir da aplicação natural do bom senso.

C) Pela observação das pessoas envolvidas que podem esboçar expressões suspeitas.

D) A partir de denúncias.

E) Questionando diretamente as pessoas com comportamentos suspeitos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética, Legislação e Entidades que regulamentam a profissão

No ambiente corporativo você pode deparar-se com comportamentos ou sinais de condutas antiéticas. Com base nos ensinamentos estudados no livro, qual é a forma mais apropriada de identificar um sinal de comportamento antiético?

A) Coletando fatos e comparando-os com padrões éticos.

B) A partir da aplicação natural do bom senso.

C) Pela observação das pessoas envolvidas que podem esboçar expressões suspeitas.

D) A partir de denúncias.

E) Questionando diretamente as pessoas com comportamentos suspeitos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Evolução das estruturas

O concreto armado, no qual barras de aço são inseridas nas peças de concreto, foi desenvolvido na década de 1850. A junção do aço ao concreto contribui na melhoria do desempenho estrutural do concreto em relação à:

Selecione a resposta:

A) Resistência à compressão.

B) Resistência à tração.

C) Resistência à umidade.

D) Resistência ao fogo.

E) Resistência à infiltração.
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

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 71 usuários muito felizes estudando em nosso site.