2009-06-06 5 views
1

Ce que je voudrais faire est d'avoir une boucle qui nomme un certain nombre de variables à chaque fois. Donc, parfois, quand je lance le programme, cette boucle va créer 3 variables a1, a2 & a3, mais d'autres fois, il pourrait en nommer plus, par ex. (Si ce genre de chose était possible):Est-il possible de nommer une variable en utilisant une variable en Java?

for(int i=1; i<=n;i++) { 
    int ai = i; 
} 

Ainsi, dans le cas (for i=1) le nom de l'int serait a1 et contient l'int 1. Cela fonctionne pas bien, mais je me demandais s'il y avait un moyen d'atteindre cet effet - ou devrais-je arrêter de pirater et d'utiliser une structure de données différente?

Merci.

En outre, ceci est juste un exemple. Je l'utilise pour créer des tableaux.

Répondre

15

Non, ce n'est pas possible. Java n'a aucun moyen de construire des symboles. Cependant, vous pouvez l'utiliser pour définir des tableaux de taille variable. Par exemple:

int[] a = new int[n]; 
for(int i = 0; i < n; i++) { 
    a[i] = i; 
} 

Ce qui semble être ce que vous voulez.

1

Je voudrais juste faire un tableau de tableaux où l'indice est égal à la valeur i.

+0

pourquoi l'affiche besoin d'un tableau de tableaux? –

+0

Les objets que le demandeur mettrait dans le tableau que vous avez fourni dans votre réponse seraient un tableau tel que décrit dans sa question. Donc, les réponses sont essentiellement les mêmes, sauf que je n'ai pas donné le code. –

2

Plutôt que d'essayer de définir des variables a1, a2, a3, ... vous pouvez simplement définir un tableau de taille fixe:

int[] anArray = new int[10]; 

et se référer à un [1], un [2], un [ 3], ...

2

Pouvez-vous utiliser un HashMap?

import java.util.HashMap; 
import java.util.Map; 


public class test { 

    public static void main(String[] args) { 

     //Fill your map structure 
     Map<String, Integer> theMap = new HashMap<String, Integer>(); 
     for(int i = 1; i <= 100; i++) { 

      theMap.put("a" + i, i); 
     } 

     //After this you can access to all your values 
     System.out.println("a55 value: " + theMap.get("a55")); 
    } 
} 

sortie du programme:

a55 value: 55 
Questions connexes