21 package org.matsim.core.trafficmonitoring;
24 import java.util.concurrent.ConcurrentHashMap;
39 class TravelTimeDataHashMap
extends TravelTimeData {
40 private final Map<Integer,TimeStruct> travelTimes;
42 protected final Link link;
44 public TravelTimeDataHashMap(
final Link link) {
45 this.travelTimes =
new ConcurrentHashMap<>();
51 public void resetTravelTimes() {
52 this.travelTimes.clear();
56 public void setTravelTime(
final int timeSlice,
final double traveltime ) {
57 TimeStruct curr = this.travelTimes.get(IntegerCache.getInteger(timeSlice));
60 curr.timeSum = traveltime;
62 this.travelTimes.put(IntegerCache.getInteger(timeSlice),
new TimeStruct(traveltime,1));
67 public void addTravelTime(
final int timeSlice,
final double traveltime) {
68 TimeStruct curr = this.travelTimes.get(IntegerCache.getInteger(timeSlice));
71 curr.timeSum += traveltime;
73 this.travelTimes.put(IntegerCache.getInteger(timeSlice),
new TimeStruct(traveltime,1));
78 public double getTravelTime(
final int timeSlice,
final double now) {
80 TimeStruct ts = this.travelTimes.get(IntegerCache.getInteger(timeSlice));
82 Link r = ((Link)this.link);
83 return NetworkUtils.getFreespeedTravelTime(r, now) ;
85 return ts.timeSum / ts.cnt;
TimeStruct(final double timeSum, final int cnt)