Duvida sobre Collections.shuffle

3 respostas
R

Pessoal uma duvida meio facil(eu acho).

Seguinte:

Dois Vector:

Vector<Vector> v;
Vector<String> s;

Adiciono n strings no Vector.

s.add("aaa");
s.add("ccc");
s.add("bbb");

Agora o problema: com n=5

for(int i=0;i<n;i++){
    Collections.shuffle(s);
    this.v.add(s);
}

Ao inves de fazer 5 Vector de string diferentes, ele mistura na primeiras vez somente depois ele fica igual a primeira mistura.
Ja tentei colocar random como segundo parametro e mesma coisa.

Se alguem souber como fazer, e claro que esses sao exemplos com pouca quantidade de Vectors.
Ou uma outra maneira de fazer essa mistura de elementos.

Aguardo uma resposta…

3 Respostas

dlt

Em primeiro lugar, cole o seu código entre tags [code].

Vc está adicionando sempre o mesmo vector de strings, no seu vector de vectors. Tente criar um vector novo e adcioná-lo ao seu vector a cada iteração do loop.

R

Tentei o seguinte:

for(int i=0;i<5;i++){
    Vector vectorTemp = new Vector<String>();
    vectorTemp = s;
    Collections.shuffle(vectorTemp);
    this.v.add(vectorTemp);
}

Continua sempre em uma unica ordem. Em todos os indices do Vector.

B
for (int i = 0; i < 5; i++)
{
    Vector vectorTemp = new Vector<String>();
    vectorTemp.addAll(s);

    Collections.shuffle(vectorTemp);
    this.v.add(vectorTemp);
}

Você está com alguns problemas pra entender como referências funcionam.

Criado 17 de novembro de 2008
Ultima resposta 17 de nov. de 2008
Respostas 3
Participantes 3