hallo,
ich habe hier zwei Klassen, die einen Vector erstellen sollen.
Mein Problem ist nur, dass alle Vectorelemente den gleichen Inhalt haben.
Es wird irgendwie alles überschrieben.
Ich hoffe jmd kann den Fehler finden.
ich habe hier zwei Klassen, die einen Vector erstellen sollen.
Mein Problem ist nur, dass alle Vectorelemente den gleichen Inhalt haben.
Es wird irgendwie alles überschrieben.
Ich hoffe jmd kann den Fehler finden.
Code:
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class Funktion {
private static int index = 0;
static EdgeData ed = new EdgeData(null, 0, 0, 0, 0);
static Vector<EdgeData> vec = new Vector<EdgeData>();
public static void createVec(String filename){
String[] vertex = { null, null};
int c = 0;
int f = 0;
// int revIndex = 0;
try{
FileInputStream fis = new FileInputStream(filename);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader bufr = new BufferedReader(isr);
String sLine = bufr.readLine();
while(sLine != null){
// sLine.trim();
String pattern = "(.*)\\-\\>(.*)\\[label\\=\\\"(.*)\\\"\\];";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(sLine);
if(m.matches()){
vertex[0] = m.group(1).trim();
vertex[1] = m.group(2).trim();
c = Integer.parseInt(m.group(3).trim());
ed.setC(c);
ed.setF(f);
ed.setIndex(index);
ed.setVertex(vertex);
vec.add(ed);
// -------------test-----------------------
System.out.println("--- "+index+" ----");
System.out.println("index at index: "+vec.elementAt(index).getIndex());
System.out.println("index at [0]: "+vec.elementAt(0).getIndex());
System.out.println("vertex[0] at index: "+vec.elementAt(index).getVertex()[0]);
System.out.println("vertex[0] at [0]: "+vec.elementAt(0).getVertex()[0]);
System.out.println();
// --------------------------------------
// index points at the index the vector element is located at
index++;
}
sLine = bufr.readLine();
}
bufr.close();
}
catch(IOException eIO){
System.out.println("file is empty!"+eIO);
}
}
public static void main(String[] args){
createVec("Test.txt");
}
}
Code:
public class EdgeData {
private int c; // capacity
private int f; // flow "at the moment"
private int revIndex; // points at where the reverse edge is located in a vector
private int index; // points at where the edge is located in a vector
private String[] vertex = new String[1]; // saves the vertex'
public EdgeData(String[] vertex, int c, int f, int revIndex, int index){
this.c = c;
this.f = f;
this.revIndex = revIndex;
this.index = index;
this.vertex = vertex;
}
public int getC(){
return c;
}
public int getF(){
return f;
}
public int getRevIndex(){
return revIndex;
}
public int getIndex(){
return index;
}
public String[] getVertex(){
return vertex;
}
public void setC(int c){
this.c = c;
}
public void setF(int f){
this.f = f;
}
public void setRevIndex(int revIndex){
this.revIndex = revIndex;
}
public void setIndex(int index){
this.index = index;
}
public void setVertex(String[] vertex){
this.vertex = vertex;
}
}
Code:
----------KONSOLE-----------------
--- 0 ----
index at index: 0
index at [0]: 0
vertex[0] at index: A
vertex[0] at [0]: A
--- 1 ----
index at index: 1
index at [0]: 1
vertex[0] at index: A
vertex[0] at [0]: A
--- 2 ----
index at index: 2
index at [0]: 2
vertex[0] at index: B
vertex[0] at [0]: B
--- 3 ----
index at index: 3
index at [0]: 3
vertex[0] at index: B
vertex[0] at [0]: B
--- 4 ----
index at index: 4
index at [0]: 4
vertex[0] at index: C
vertex[0] at [0]: C
--- 5 ----
index at index: 5
index at [0]: 5
vertex[0] at index: C
vertex[0] at [0]: C
--- 6 ----
index at index: 6
index at [0]: 6
vertex[0] at index: D
vertex[0] at [0]: D
--- 7 ----
index at index: 7
index at [0]: 7
vertex[0] at index: E
vertex[0] at [0]: E
Code:
---------Test.txt---------------
digraph {
A -> B [label="75"];
A -> C [label="65"];
B -> D [label="70"];
B -> E [label="57"];
C -> D [label="62"];
C -> E [label="70"];
D -> F [label="67"];
E -> F [label="80"];
}