简体   繁体   中英

Is it possible to name a variable using a variable in Java?

What I would like to do is have a loop that names a certain number of variables each time. So sometimes when I run the program, this loop will create say 3 variables a1, a2 & a3 but other times it could name more, eg (if this sort of thing were possible):

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

So in the case (for i=1) the name of the int would be a1 and contains the int 1. This clearly won't work, but I was wondering if there was a way to achieve this effect -- or should I stop hacking and use a different data structure?

Thanks.

Also, this is just an example. I'm using it to create arrays.

No, this is not possible. Java has no way to construct symbols. However, you can use it to define variable-size arrays. For example:

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

Which seems like what you may want.

Map

Can you use an implementation of Map such as a 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"));
    }
}

Program output:

a55 value: 55

Rather than trying to define variables a1, a2, a3, ... you can simply define a fixed size array:

int[] anArray = new int[10]; 

and refer to a[1], a[2], a[3],...

我只是制作一个数组数组,其中索引等于i值。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM