Ajuda em atividade de linguagem Java (HashSet)?

Boa noite gente, a atividade é a seguinte:

Faça um programa que utilize a estrutura HashSet da API Collection e que adicione 10 mil elementos e remova cinco mil elementos. Faça o cálculo desse processamento e mostre, em tela, o resultado. Conforme utilizado no exemplo anterior, é permitido o uso da API Collection. Outros comandos podem ser utilizados.

Qual é exatamente a sua dúvida??

Não ficou muito claro o que quiseram dizer com “adicione 10 mil elementos”, talvez uma explicação um pouco mais clara?

@skyrocha Acredito que você deve criar um loop para preencher o Hahset com 10 mil elementos e depois remover 5 mil e verificar o custo do processo, quanto tempo levou!

long tempoInicial = System.currentTimeMillis();

// execução

System.out.println("o metodo executou em " + System.currentTimeMillis() - tempoInicial)
1 curtida

Obrigado amigo, ficou muito mais claro, ajudou muito!

1 curtida

@Jelson1

package hashsetact;
import java.util.HashSet;
import java.util.Iterator;

public class HashSetAct {

public static void main(String[] args) {

HashSet dset = new HashSet<>();
dset.add(new Dog(1));

Iterator<Dog> iterator = dset.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next() + " Dog");
    }
}

}

Pra eu poder fazer um loop para adicionar elementos ao HashSet eu preciso importar alguma coisa a mais além de HashSet e o Iterator? por que estou tendo dificuldade em fazer um loop que adicione elementos com um valor e não só como string, por que eu posso fazer ele adicionar 1 “dog” 10.000 vezes, mas e depois, como faço para remover esses 5.000? ele deveria armazenar os elementos em quê exatamente? é usando o comando “for”?

Segue um exemplo com Integer:

import java.util.HashSet;

class Main {
  public static void main(String[] args) {
    
    HashSet<Integer> hset = new HashSet<>();
    
    long tempoInicial = System.currentTimeMillis();
    
    //add 10 mil elementos do tipo Int!
    for(int i = 1; i<=10000; i++){
       hset.add(i);
    }
    
    //remover 5 mil elementos;
    for(int i = 0; i<5000; i++){
      hset.remove(i);
    }
    
    long tempoTotal = System.currentTimeMillis() - tempoInicial;
    System.out.printf("o metodo executou em %d ms\n",tempoTotal);

  }
}
1 curtida

Consegui fazer por causa do seu exemplo, valeuzão, salvou a pátria!!

Ola, tudo bem… estou com o mesmo problema que nosso amigo, porem vc tem mas esperiencia que eu rs , e não estou conseguindo intender, tenho que entregar este trabalho ate segunda(16)
o resultado que esta no console são o tempo de execução do metodo, creio que não seja isso que esta sendo pedido:‘Faça o cálculo desse processamento e mostre, em tela’.sera que este processo seria somente o calculo de tempo ou tem outro resultado ??

Eu entedi assim, você tem o enúnciado completo?
Lendo agora, depois de muito tempo fiquei na dúvida kkk, mas nessa questão não tem o que calcular além do tempo computacional para realizar esse procedimento! Mas você pode tentar ver isso com os seus colegas de turma ou até mesmo com o seu professor.

De repente, se quiser enriquecer o resultado, apresente o tempo que levou pra realizar as inserções e o tempo que levou pra realizar as remoções.

1 curtida

No caso Jelson1 só é para executar o tempo total é isto?!

Eu acredito que o exercício propõem que você adicione 10 mil elementos e remova 5 mil, e calcule o tempo que levou para executar essas operações, como eu fiz na solução acima. E como sugerido pelo staroski, você pode apresentar o tempo que levou para inserir os elementos, o tempo que levou para remover e por fim o tempo total. A sua dúvida era essa?