Sto lavorando alla mia prima app per Android, un gioco di matematica per mio figlio, e sto imparando Java nel processo. Ho due ArrayList
s, uno di interi 0..9
e una stringa di operazioni possibili, al momento, solo +
e -
.Passare una lista array di qualsiasi tipo a un metodo
Vorrei scrivere un metodo che restituisca un indice casuale in un ArrayList
, così posso selezionare un elemento casuale. Quello che sto incontrando è che ho bisogno di due metodi, uno per ogni tipo di ArrayList
, anche se il codice è identico. C'è un modo per farlo in un unico metodo?
Quello che uso ora:
Random randomGenerator = new Random();
. . .
n = randomIndexInt(possibleOperands);
int op1 = possibleOperands.get(n);
n = randomIndexInt(possibleOperands);
int op2 = possibleOperands.get(n);
n = randomIndexStr(possibleOperations);
String operation = possibleOperations.get(n);
. . .
int randomIndexInt(ArrayList<Integer> a){
int n = randomGenerator.nextInt(a.size());
return n;
}
int randomIndexStr(ArrayList<String> a){
int n = randomGenerator.nextInt(a.size());
return n;
}
Quello che mi piacerebbe fare è il collasso randomIndexInt
e randomIndexStr
in un unico metodo.
È possibile scrivere un metodo che utilizzi A (di tipo 'int') come argomento e restituisce qualsiasi numero casuale compreso tra 0 e A e chiama questo metodo passando le dimensioni dell'elenco di array. –
Ricorda di accettare una risposta e forse +1 se ti piace anche qualcun altro :) –
+1 per la codifica di un gioco di matematica per tuo figlio. – irrelephant