private static HashMap<Integer,Double[]> p(HashMap<Integer,Double[]> map, Integer stationID, int t, int T) {
if(T == t+1) {
return map;
}
NodeDataIterator graph = new NodeDataIterator();
graph.selectStation(stationID);
ArrayList<NodeData> nachfolger = graph.getNexts();
for(NodeData node: nachfolger.toArray(new NodeData[nachfolger.size()]) {
Double[] d = map.get(node.id);
if(d == null) {
d = new Double[T];
for(int i=0; i<T; i++) {
d[i] = 0.0;
}
map.put(node.id, d); //[1]
}
WasAuchImmer edgeWK0 = Controller.edgesWK.get(String.valueOf(StochastischeMatrix.kombi(stationID,node.id)));
WasAuchImmer edgeWK1 = edgeWK0 == null ? null : Controller.edgesWK.get(String.valueOf(StochastischeMatrix.kombi(stationID,stationID)));
if(edgeWK1 != null && edgeWK1.zahl[0] != 0) {
d[t] = edgeWK0.zahl[0]/edgeWK1.zahl[1];
}
else {
d[t] = 0.0;
}
//map.put(node.id, d);[1]
if(d[t] != 0) {
return p(map, node.id, t+1, T);
}
}
return map;
}
[1] Da Arrays Call-by-reference sind, muss map.put(node.id, d);
auch nur aufgerufen werden, wenn der Eintrag noch nicht existiert.
MfG
bubble
--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye