Hola!
Gracias por tu respuesta, entiendo lo que quieres decir y ya lo he aplicado.
Lo que no acabo de tener muy claro es lo siguiente
Código:
// 2. CREATE THE INPUTS OBJECT WITH nNodes
inputs = new Input(nNodes);
// 3. CREATE ALL NODES AND FILL THE NODES LIST
FileReader fr = new FileReader(archivo_airports_A320);
BufferedReader br = new BufferedReader(fr);
int k = 0;
String linea;
while( (linea = br.readLine()) != null ){
String name=linea;
float x=0;
float y=0;
Node node = new Node(name,k, x, y); Aquí crea un nodo nuevo y les pasa los valores del primer fichero. Crea tantos nodos como lineas haya.
k++;
}
Lo que no pasa es la relación con:
Código:
public class Input {
/* INSTANCE FIELDS & CONSTRUCTOR */
public Node[] nodes; // List of all nodes in the problem/sub-problem
public Input(int n)
{ nodes = new Node[n]; // n nodes
}
/* GET METHODS */
public Node[] getNodes(){return nodes;}
}
}
Código:
public class Node {
/* INSTANCE FIELDS & CONSTRUCTOR */
public int id; //id of the airport
public String name; //name of the airport
public float x; // node x coordinate
public float y; // node y coordinate
public Node(String nodeName ,int nodeID, float nodeX, float nodeY)
{ name=nodeName;
id = nodeID;
x = nodeX;
y = nodeY;
}
/* GET METHODS */
public String getname(){return name;}
public int getid(){return id;}
public float getX(){return x;}
public float getY(){return y;}
}
Es decir en el primer código se llama al segundo para que inicialize un objeto con un string de tantas posiciones como lineas cuentas.
Luego mientras vuelve a recorrer el fichero guarda el valor en un objeto nodo (3r código) que se crea cada vez que hacemos un salto de linea.
No se debería decir de alguna manera que cada objeto tipo nodo lo guarde en una posición del string del tipo Input? algo como:
Código:
Node node = new Node(name,k, x, y);
Inputs.nodes[k] = node
Como sino puedes leer la información de cada nodo recuperando solamente el string de input?
Gracias! :) Un saludo!