Comparando duas HashSet

1 resposta
X

Opa eae galera !
Sou meio novato aqui , começando a ver java na faculdade
:)
E ja to precisando de uma ajuda...

Bom como primeiro projeto o professor passou para uma jogo de Dominó para fazermos e estou com problema em um certo lugar
Deem uma olhada no codigo...

// Seleciona as Peças do Jogador 1:
        HashSet jogador1 = new HashSet();
        int j = 0;
        for (int i = 0; i < 7; i++){
            j = (int) (Math.random() * 28);
            if (j < 28 ){
                jogador1.add(j);
            }
        }

    // Se tiver menos que 7 peças ele adiciona ara completar

        for(int i=0; jogador1.size() < 7; i++){
            if (j < 28 ){
            j = (int) (Math.random() * 28);
               jogador1.add(j);
            }
        }

    // Mostras as peças do Jogador1
        for (int i = 0; i < 1; i++){
            System.out.print("Peças Jogador 1"+jogador1+"\n");
        }

        // Seleciona as Peças do Jogador 2:
        HashSet jogador2 = new HashSet();

        int k = 0;
        for (int i = 0; i < 7; i++){
            k = (int) (Math.random() * 28);

            if (k < 28 ){
                jogador2.add(k);

            }
        }

        // Se tiver menos que 7 peças ele adiciona ara completar

        for(int i=0; jogador2.size() < 7; i++){
            k = (int) (Math.random() * 28);

            if (k < 28 ){
                jogador2.add(k);
                }

            }

   // Imprime as peças do Jogador2
        for (int i = 0; i < 1; i++){
            System.out.print("Peças Jogador 2"+jogador2+"\n");
        }

Bom como é possivel ver as peças vao de 0 a 27 e esas peças são feitas por uma interface enquanto a isso sem problemas ( por enquanto )...
O meu problema ai é que as vezes o random gera o mesmo numero para o jogador1 e para o jogador2

Sera que é possivel comparar a HashSet1 com a HashSet2 e se caso o 2 estiver algum igual em relaçao ao 1 excluir ele?

Vlw ae Glera !

1 Resposta

Lavieri

Eu não entendi a logica da sua abordagem, e do uso de HashSet, porem Collections, tem comandos para remover e reter objetos…

boolean modificou = hashSet1.removeAll(hashSet2); //remove da hashSet1, se houver, todos os objetos que coincidirem com hashSet2; //boolean vai guardar um treu/false que diz c houve ou não alterações

hashSet1.retainsAll(hashSet2); //faz o oposto, ficará em hashSet1 apenas os objetos que tb existam em hashSet2 //acredito que vc queira o caso de cima, do removeAll

Criado 11 de março de 2009
Ultima resposta 11 de mar. de 2009
Respostas 1
Participantes 2