ich eine Datei haben, die die folgenden Daten enthält:Filling 2D-Array aus Listen
4
5
0 2
0 1 0.6
0 2 0.2
0 3 0.5
1 3 0.8
2 3 0.3
die erste Linie ist die Knoten-Nummer, die zweite Zeile ist Kanten Nummer und der 3. Zeile enthält die Knoten mit speziellen Einschränkungen.
Allerdings habe ich diesen Code verwendet, um es aus der Datei in zwei Listen, Werte und Knoten zu lesen, wobei die Werteliste die Kanten enthält (Beispiel: 0 1 0,6), während die Knotenliste die Werte der 3 Zeilen enthält (4, 5, {0,2}).
Ich brauche zwei Arrays zu konstruieren, ein ein Äquivalent zu Adjazenzmatrix die wie folgt
istint graph[][] = {
{0, 6, 2, 5},
{6, 0, 0, 8},
{2, 0, 0, 3},
{5, 8, 3, 0}
};
und das andere Array ist die spezielle Knoten-ID, dh
int special [] ={0,2};
I lesen kann, die Werte aus einer Datei und trennen sie in zwei Listen Knoten und Werte in der folgenden Form: Knoten Liste enthält: 4, 5, 0, 2 Werte Liste enthält: 0,1,0,6,0,2,0,2,0, 3,0,5,1,3,0,8,2,3,0,3
Ich habe ein zweidimensionales Array namens graph2 deklariert, um die Werte aus den Listen zu speichern. Aber das Problem ist, dass ich die Beziehung nicht finden kann, um Daten aus der Werteliste zu füllen, um in das Diagramm2d-Array zu passen. Es muss wie das Diagramm-Array sein, aber seine Initialisierung wäre dynamisch von dieser Datei.
Also, was ich brauche, ist im Grunde zwei Arrays zu erstellen: eins ist wie das Graph-Array (2d-Array) und das andere ist wie spezielle Array (1d). Basierend auf der Datei muss ich das tun. Vielen Dank im Voraus
Mein Code:
List<Double> values = new ArrayList<>();
List<Integer> nodes = new ArrayList<>();
int c = 0;
File file = new File("text.txt");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String text = null;
while ((text = reader.readLine()) != null) {
if (c <= 2) {
String[] str = text.split(" ");
for (int i = 0; i < str.length; i++) {
if (str[i].trim().length() > 0) {
nodes.add(Integer.parseInt(str[i]));
}
}
c++;
} else {
String[] str = text.split(" ");
for (int i = 0; i < str.length; i++) {
if (str[i].trim().length() > 0) {
values.add(Double.parseDouble(str[i]));
}
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
System.out.print(e);
}
}
double graph2 [] [] =new double [nodes.get(0)][nodes.get(0)];
Ich verstehe nicht, was Sie tun möchten, möchten Sie aus der Datei direkt in Ihrem 2d-Array lesen? –
@JoachimHuet überprüfen Sie bitte meine Bearbeitung. –
Haben Sie einen neuen Account für den nächsten Teil dieser Frage erstellt: https://stackoverflow.com/questions/47265100/how-to-read-this-from-file-and-get-each-value-alone – notyou