Array random

di il
1 risposte

Array random

Questo è il mio codice, per ogni array mi è stato chiesto di estrarre un valore, di fare un getter un math.random e un .length. le sto provando tutte ma purtropo non riesco ad andare avanti. come posso fare? grazie a tutti

package utility;

public class TavoloLavoro {

public Integer [] anno = {2010, 2008, 2018, 2015, 1994,};
public String [] marca = {"Fiat", "Ford", "Ducati", "BMW", "Yhamaha"};
public Integer [] cilindrata = {1200, 250, 1400, 1000, 600};
public Integer [] tempi = {2,4};
public Integer [] porte = {5, 3};
public Alimentazione[] alimentazione = {Alimentazione.Benzina, Alimentazione.Diesel};
public Integer [] capacità = {1000, 2000, 3000};

}

1 Risposte

  • Re: Array random

    SuperKay ha scritto:


    Questo è il mio codice, per ogni array mi è stato chiesto di estrarre un valore, di fare un getter un math.random e un .length. le sto provando tutte ma purtropo non riesco ad andare avanti. come posso fare?
    Premesso che se quei valori sono fissi così, quei campi sarebbe meglio se fossero "static" (non serve che "appartegano" a ciascun oggetto TavoloLavoro, ammesso che ti serva istanziare TavoloLavoro, cosa che potrei dubitare visto l'uso).

    Comunque se vuoi fare un es. getAnno() che tira fuori "a caso" uno di quei anni, è facile.

    Math.random() restituisce un valore tra 0 (incluso) e 1 (escluso). Quindi non sarà MAI 1 ma es. 0.9999998765. Se moltiplichi questo valore casuale per 5 (5 = la lunghezza di anno) ottieni un valore compreso tra 0 (incluso) e 5 (escluso!). Quindi essendo un double ti basta troncare ad int con un cast a int. Ed hai l'indice che usi per estrarre l'anno. Tutto lì.

    Similare per tutti gli altri.


    P.S. fai la cosa "furba": metti un metodo privato che dato un valore int n estrae un valore compreso tra 0 (incluso) e n (escluso). Poi lo usi da tutti gli altri getAnno(), getMarca() ecc...

    P.S.2 si potrebbe fare ancora meglio ma servirebbe un metodo "generico" (nel senso dei generics) che non so se conosci.
Devi accedere o registrarti per scrivere nel forum
1 risposte