Search code examples
javavariablesdynamic-datadynamic

Can I change variable name inside a loop in Java


I want to change the variable name with each iteration. Since the number of nodes created is dynamically changing.

I tried using one dimensional array but its returning a null pointer. My code is as follow

    GenericTreeNode<String> **root1[]** = null;
    for(int i=0;i<10;i++)
    {
        String str="child"+i;
        System.out.println(str);

        **root1[i]** =new GenericTreeNode<String>(str);
    }

I am using already built datastructure

    public class GenericTree<T> {

private GenericTreeNode<T> root;

public GenericTree() {
    super();
}

public GenericTreeNode<T> getRoot() {
    return this.root;
}

public void setRoot(GenericTreeNode<T> root) {
    this.root = root;
}

Is there some other way in java or JSP to change the variable name dynamically inside the loop.


Solution

  • GenericTreeNode<String> root1[] = null;
    

    This line is equivalent to this one:

    GenericTreeNode<String>[] root1 = null;
    

    so you create an array variable and initialize it to null

    root1[i] =new GenericTreeNode<String>(str);
    

    but here you assign a value to the array's index.

    This must throw a NullPointerException!!.

    Here's how to do it:

    GenericTreeNode<String>[] root1 = new GenericTreeNode<String>[10];