我可以用Java中字符串数组中的变量命名节点吗?

我可以用Java中字符串数组中的变量命名节点吗?,java,arrays,string,Java,Arrays,String,我正在尝试创建一个节点,并使用存储在字符串数组中的字符串命名它,但它不会接受它。有办法做到这一点吗 String strLine; while ((strLine = br2.readLine()) != null) { String[] arr=strLine.split(","); for (int i = 0; i <arr.length; i++) { String v = arr[i]; Node arr[i] = new

我正在尝试创建一个节点,并使用存储在字符串数组中的字符串命名它,但它不会接受它。有办法做到这一点吗

String strLine;
while ((strLine = br2.readLine()) != null)   {
    String[] arr=strLine.split(",");

    for (int i = 0; i <arr.length; i++) {
        String v = arr[i];
        Node arr[i] =  new Node(v);
    }
}
字符串strLine;
而((strLine=br2.readLine())!=null){
字符串[]arr=strLine.split(“,”);

对于(int i=0;i,在Java中不能将变量(或数组元素)的值用作变量名。最好创建一个
映射作为符号表:

String strLine;
Map<String, Node> nodeMap = new HashMap<String, Node>();
while ((strLine = br2.readLine()) != null)   {
    String[] arr=strLine.split(",");

    for (int i = 0; i <arr.length; i++) {
        String v = arr[i];
        nodeMap.put(v, new Node(v));
    }
}

谢谢你们的帮助,它帮助我修复了我的程序并使其正常工作 我所做的是创建一个顶点构造函数,然后检查是否有同名节点,如果没有添加新节点

      String strLine;
          while ((strLine = br2.readLine()) != null)   {
          String[] arr=strLine.split(",");

          for (int i = 0; i <arr.length; i++) {
                String v = arr[i];
                String w = arr[++i];
                double weight =Double.parseDouble(arr[++i]);
                if(S.findVertexByName(v) == false)
                {


                    S.addVertex(new Vertex(v));
                    count ++;
                }
                 if(S.findVertexByName(w) == false)
                {


                    S.addVertex(new Vertex(w));
                    count ++;
                }

                S.addEdge(S.getVertexByName(v), S.getVertexByName(w), weight);
               }             
            } 
字符串strLine;
而((strLine=br2.readLine())!=null){
字符串[]arr=strLine.split(“,”);

对于(int i=0;i什么是
节点
?出现了什么错误?您可以始终向节点类添加
名称
字段并在其中存储名称。您可以定义一些内容,以便该名称可以排序,用作映射或集合中的键等。这是无效的:
节点arr[i]=新节点(v)
。在将任何内容存储到数组中之前,必须先分配数组。(并且不能在同一上下文中使用相同名称命名两个不同的对象。)
      String strLine;
          while ((strLine = br2.readLine()) != null)   {
          String[] arr=strLine.split(",");

          for (int i = 0; i <arr.length; i++) {
                String v = arr[i];
                String w = arr[++i];
                double weight =Double.parseDouble(arr[++i]);
                if(S.findVertexByName(v) == false)
                {


                    S.addVertex(new Vertex(v));
                    count ++;
                }
                 if(S.findVertexByName(w) == false)
                {


                    S.addVertex(new Vertex(w));
                    count ++;
                }

                S.addEdge(S.getVertexByName(v), S.getVertexByName(w), weight);
               }             
            }