En passant une liste de tableaux de n'importe quel type de méthode

Je travaille sur ma première application Android, un jeu de mathématiques pour mon enfant, et je suis en apprentissage de Java dans le processus. J'ai deux ArrayLists, l'une des entiers 0..9 et l'une des chaînes d'opérations possibles, à l'heure actuelle, seulement + et -.

Je voudrais écrire une méthode qui retourne un hasard index dans un ArrayList, afin que je puisse sélectionner un élément au hasard. Ce que je suis en cours d'exécution, c'est que j'ai besoin de deux méthodes, une pour chaque type de ArrayList, même si le code est identique. Est-il un moyen de faire cela dans une seule méthode?

Ce que j'utilise maintenant:

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;
}

Ce que je voudrais faire est de l'effondrement randomIndexInt et randomIndexStr dans une seule méthode.

  • Vous pouvez écrire une méthode qui vous permettra de prendre Un (de type int) comme argument et de retour tout nombre aléatoire entre 0 et Une et à l'appel de cette méthode en passant votre tableau liste les tailles.
  • Rappelez-vous accepter une réponse, et peut-être +1 si vous aimez quelqu'un d'autre en plus 🙂
  • +1 pour le codage d'un jeu de mathématiques pour votre enfant.
  • Merci, tous, avec l'aide que je suis ici, j'ai été en mesure d'améliorer la méthode, et mon code ressemble maintenant à ceci: int op1 = (Integer) getRandomElement(possibleOperands); int op2 = (Integer) getRandomElement(possibleOperands); opération de Chaîne = (String) getRandomElement(possibleOperations); . . . Objet getRandomElement(ArrayList<?> a){ int n = randomGenerator.nextInt(un.size()); return un.get(n); } Excuses, je ne peux pas obtenir ce commentaire pour formater correctement.
InformationsquelleAutor codingatty | 2012-07-31