Код — это третий случай функции. Мой проект является ответвлением OpenMetroMaps, и я пишу функцию, которая работает как система продажи билетов. Есть три типа билетов, и третий тип работает плохо.
В коде src — параметр функции типа станции.
Полный третий случай:
case TIME_LIMIT :
Set vStations = new HashSet();
List stationList = new ArrayList();
Map stationMap = new HashMap();
Map stationLineMap = new HashMap();
stationList.add(src);
vStations.add(src);
stationMap.put(src, 0.0);
while(!stationList.isEmpty()){
Station currStation = stationList.remove(0);
double currTime = stationMap.get(currStation);
// If the time exceeds the limit or we are at the starting station, do not add
if( currTime > limit ){
continue;
}
// Collecting stops
List currStops = currStation.getStops();
Set currLines = new HashSet();
// Collecting lines
for( Stop stop : currStops){
currLines.add(stop.getLine());
}
stationLineMap.put(currStation, currLines);
// Collecting stops of the lines
for( Line line : currLines){
List lineStops = line.getStops();
for(int i = 0; i < lineStops.size() ; i++){
Stop stop = lineStops.get(i);
Station nextStation = stop.getStation();
if(!vStations.contains(nextStation)){
double distance = calculateDistance(currStation, nextStation);
double travelTimeMin = ( distance / 40 ) * 60 + 1;
double finalTime = travelTimeMin + currTime;
Set lines = stationLineMap.putIfAbsent(nextStation, new HashSet());
lines.add(line);
if(!lines.contains(line)){
finalTime += 6;
}
if(finalTime
Подробнее здесь: [url]https://stackoverflow.com/questions/79128472/java-the-put-and-putifabsent-methods-of-hashmap-dont-work-properly-for-me-wh[/url]
Код — это третий случай функции. Мой проект является ответвлением OpenMetroMaps, и я пишу функцию, которая работает как система продажи билетов. Есть три типа билетов, и третий тип работает плохо. В коде src — параметр функции типа станции. Полный третий случай: [code]case TIME_LIMIT :
Set vStations = new HashSet(); List stationList = new ArrayList();
Map stationMap = new HashMap(); Map stationLineMap = new HashMap();