Reputation: 2962
So for example I have the following variables: Var1, Var2, Var3, Var4, Var5 - a total of 5 variables. All with unique data and I want to loop though them using a for loop.
//String Var1 = something, Var2 = something etc..
for (int i = 1; i <= 5; i++)
{
Var(i) = "something else";
}
//i.e I change Var(1), Var(2) etc.. to something else respectively.
To clarify further, ultimately I want to apply this method to iterate through multiple components in my program. I have a large number of components with styled names(e.g. label1, label2, label3 etc..) and want to change the value of these components without having to individually set their value.
Upvotes: 6
Views: 21911
Reputation: 1
Try This piece of Code.
public class Main {
public static void main(String[] args) {
Insan i1[]=new Insan[5];
i1[0].name="Ali";
i1[0].age=19;
i1[1].name="Pakize";
i1[1].age=29;
i1[2].name="Kojiro Hyuga";
i1[2].age=30;
i1[3].name="Optimus Prime";
i1[3].age=40;
for (int ib=0; ib < 4; ib++) {
System.out.println("Name: " + i1[ib].name + " Age: "+i1[ib].age);
}
}
}
Upvotes: -3
Reputation: 12440
You can't loop through (local) variables. You can use an array or a List and then loop through its elements:
for (Object item : myListOfObjects) {
// do the processing
}
Upvotes: 1
Reputation: 255
As long as all the variables use the same type, you can use an Array to store all of them. Then you can use a for loop to iterate through the array. Something like this:
String[] V = {"var1","var2","var3","var4","var5"};
int arraylength = V.length;
for(int i = 0; i<arraylength; i++){
System.out.println(V[i]);
}
Upvotes: 1
Reputation: 29266
Using Java 8 Arrays it is as simple as:
Arrays.stream(varArray).forEach(System.out::println);
Usage:
public class LoopVariables {
public static void main(String[] args) {
String[] varArray = new String[]{"Var1", "Var2", "Var3", "Var4", "Var5"};
Arrays.stream(varArray).forEach(System.out::println);
}
}
Upvotes: 0
Reputation: 2277
I would suggest to go for an array if data type of variables are same. You can try something like that
String[] Var = {"something","something2","something else"};
for (String var : Var)
{
System.out.println(var);
}
Upvotes: 5
Reputation: 7496
You can do it with reflection, if the variables are defined as members of a class. For method parameters or local variables it is not possible. Something similar to this:
Class currentClass = getClass();
Field[] fields = currentClass.getFields();
for (Field f : fields) {
System.out.println(f.getName());
}
If you intend to change the value it becomes a bit more complicated as you also have to consider the type of the variable. E.g. you can assign a String
to a variable of type Object
but not the other way around.
Upvotes: 11