HashSet - Random

2 respostas
Alejotiago

Les escribo de Montevideo , para consultar como realizar un metodo utilizando HashSet y Random.

Basicamente buscar una palabra en el diccionario menor a 9 letras.

public class Diccionario {

private Set palabras = new HashSet();

.
.
.
.

public String sortearPalabra(int N) {

Random r = new random();

???

}

}

Gracias estimado por tu ayuda si es posible.

Saludos

Alejotiago.

2 Respostas

T

Meu espanhol é nulo, então vou responder em português mesmo.

Primeiramente carregue as palavras no hashset:

private Set <String> palabras = new HashSet<String>(); 
...
palabras.add ("cuchara");
palabras.add ("piñata");

Depois, carregue as palavras em um List - esta estrutura de dados permite acesso indexado (que é o que você quer):

private List<String> listaPalabras = new ArrayList<String>();
...
// depois de ter carregado o dicionário completo, você faz:
listaPalabras.addAll (palabras);

A seguir, você pode escolher uma palavra ao acaso.
Note que "new Random" deve ser posto em uma variável de sua classe, não ser chamada dentro do método "sortearPalabra". Digamos que seria algo como:

private Random r = new Random(); // deve ficar fora do método sortearPalabra
public String sortearPalabra (int nLetras) {
    int indicePalabraSorteada;
    String palabraSorteada;
    do {
        indicePalabraSorteada = r.nextInt (listaPalabras.size());
        palabraSorteada = listaPalabras.get (indicePalabraSorteada)
    } while (palabraSorteada.length() >= nLetras); 
    return palabraSorteada;
}
Alejotiago

Maravilla Vinicius , so falta qui la palabra sea < 10 caracteres o sea <= 9

Estuve probando

public String sortearPalabra(int N)



while(palabraSorteada.length() <=9)

pero me da error

donde controlo que sea <=9 caracters

Obrigado Vinicius …

Criado 23 de maio de 2008
Ultima resposta 23 de mai. de 2008
Respostas 2
Participantes 2