Reputation:
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, e.g. (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.
Upvotes: 3
Views: 1735
Reputation: 5180
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
Upvotes: 3
Reputation: 300489
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],...
Upvotes: 2
Reputation: 18305
I would just make an array of arrays where the index is equal to the i value.
Upvotes: 1
Reputation: 16005
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.
Upvotes: 16