Utilizando método Random

5 respostas
programaçãojavaarraylist
V

Bom dia, então galera estou fazendo um projeto de cadastro de cidades, no caso o usuário tem a opção de cadastrar a cidade, pesquisa-lá, pesquisar todas as cidades cadastradas e mostrar a melhor rota para chegar na ultima cidade cadastrada.
Minha duvida e na melhor rota eu preciso entender alguma forma em que pergunte para o usuário a cidade em que ele vai sair e a cidade em que ele quer chegar, a quantidade em KM gasta pelo usuário até chegar o destino, e as cidades que o usuário irá percorrer até chegar a cidade desejada.
Preciso usar o método Random porém não sei utilizá-lo muito bem.
O código que eu fiz está logo abaixo.

A CLASSE Estado:

public class Estado {

private String nCidade, prefeito;

private int nHabitantes;

private String vizinhos;

public Estado(){

}

public String getnCidade() {

return nCidade;

}
public void setnCidade(String nCidade) {

this.nCidade = nCidade;

}
public String getPrefeito() {

return prefeito;

}
public void setPrefeito(String prefeito) {

this.prefeito = prefeito;

}
public int getnHabitantes() {

return nHabitantes;

}
public void setnHabitantes(int nHabitantes) {

this.nHabitantes = nHabitantes;

}
public String getVizinhos() {

return vizinhos;

}
public void setVizinhos(String vizinhos) {

this.vizinhos = vizinhos;

}
public String toString() {

String str  = toString() + "NOME CIDADE: " + getnCidade()

+ "\nNUMERO DE HABITANTES: " + getnHabitantes()

+ "\nNOME PREFEITO: " + getPrefeito()

+ "\nCIDADES VIZINHAS: " + getVizinhos();

return str;

}

}

A classe Principal que executa o programa:

public class Principal {

public static void main(String[] args){

String City, nCidade, nHabitantes, prefeito, vizinhos;

int x = 0, cont =1;

int y = 9;

ArrayList cd = new ArrayList <>();

String nomes = “”;

String cidadeBuscada = NAO FOI ENCONTRADA;

do {

City = JOptionPane.showInputDialog(null,"|ESCOLHA A OPÇÃO DESEJADA|"
  • “\n1) CADASTRAR CIDADE”

  • “\n2) MOSTRA CIDADES CADASTRADAS”

  • “\n3) PESQUISAR CIDADE”

  • “\n4) MELHOR ROTA”

  • “\n5) DIGITE ESC PARA SAIR”,"|ROTA FELIZ|", JOptionPane.PLAIN_MESSAGE);

    do {
    
    if(City.toUpperCase().equals(1)){
    
    Estado entidade = new Estado();
    
    nCidade = JOptionPane.showInputDialog(null,"NOME DA CIDADE: ",CADASTRO, JOptionPane.PLAIN_MESSAGE);
    
    entidade.setnCidade(nCidade);
    
    nHabitantes = JOptionPane.showInputDialog(null,"QUANTIDADE DE HABITANTES: ",CADASTRO, JOptionPane.PLAIN_MESSAGE);
    
    entidade.setnHabitantes(Integer.parseInt(nHabitantes));
    
    prefeito = JOptionPane.showInputDialog(null,"NOME DO PREFEITO: ",CADASTRO, JOptionPane.PLAIN_MESSAGE);
    
    entidade.setPrefeito(prefeito);
    
    vizinhos = JOptionPane.showInputDialog(null,"VIZINHOS: ",CADASTRO, JOptionPane.PLAIN_MESSAGE);
    
    entidade.setVizinhos(vizinhos);
    
    cd.add(entidade);
    
    x = Integer.parseInt(JOptionPane.showInputDialog(null,DIGITE QUALQUER TECLA PARA SAIR DO PROGRAMA OU \n0 PARA CONTINUAR CADASTRANDO));
    
    }cont++;
    
    }while ((x==0)&&(cont<=2));
    

    if(City.toUpperCase().equals(“2”)){

    for(Estado nome : cd){
      nomes += nome+"\n";
    
    }
    
    JOptionPane.showMessageDialog(null, nomes, TODAS AS CIDADES, JOptionPane.INFORMATION_MESSAGE);
    
    }
    
    if(City.toUpperCase().equals(3)){
    
    String busca = JOptionPane.showInputDialog(null,"DIGITE A CIDADE DESEJADA: ",PESQUISAR CIDADE, JOptionPane.PLAIN_MESSAGE);
    
    for (int i = 0; i < cd.size(); i++) {
    
    if(cd.get(i).getnCidade().equals(busca)) {
    
    cidadeBuscada = (
    
    cd.get(i).getnCidade()+ “\n” +
    
    cd.get(i).getnHabitantes()+ “\n” +
    
    cd.get(i).getPrefeito()+ “\n” +
    
    cd.get(i).getVizinhos()+ “\n”);
    
    }
    
    JOptionPane.showMessageDialog(null, cidadeBuscada, "CIDADE PESQUISADA", JOptionPane.INFORMATION_MESSAGE);
          }
    

    }

    if(City.toUpperCase().equals("4")){
    
    
      }
    
          }while (y==9);
    

}

5 Respostas

Rodrigomarden

Para utilizar o random basta importar a biblioteca

import java.util.Random;

Instanciar um objeto do tipo random, ex:

Random gerador = new Random();

E chamar o método.

gerador.nextInt(26);

**O 26 pode ser alterado, ele é o limite estabelecido, no caso, entre 0 e 25, se fosse 100, seria entre 0 e 99

E para alterar o tipo é só chamar, .nextNovotipo

V

Mias no caso teria como me dar um exemplo em código, preciso gerar 7 valores diferentes para a cidade, valores entre 5 e 30 e mostrar a melhor rota entre ela depois

Rodrigomarden
int[] distancia;
int aux, i =0;
do {
aux = gerador.nextInt(31);
if (aux >= 5 ) {
distancia[i] = aux;
i++;
}
}while(distancia.length != 7);

Não testei, mas acho que vai funcionar.

V

Putz tentei aqui e nada, tentei de outra forma também e não consegui, dessa forma abaixo:

Random Estancia = new Random ();

final int  maximo = 30, minimo = 5;

int cd.get(i) = Estancia.nextInt( ((this.maximo - this.minimo) + 1)  + this.minimo );

return cd.get(i);
R

Não sei dizer onde você está implementando esse cd.get(i), mas você vai precisar de uma variável i pra funcionar, normalmente dentro de um laço for.

Se não for isso, poste mais detalhes.

Criado 29 de maio de 2017
Ultima resposta 29 de mai. de 2017
Respostas 5
Participantes 3