обновить значение ключа карты Java - PullRequest
4 голосов
/ 18 ноября 2011

Хорошо, у меня есть этот код:

TreeMap<DateTime, Integer> tree2 = getDatesTreeMap();
DateTime startx = new DateTime(startDate.getTime());
DateTime endx = new DateTime(endDate.getTime());
boolean possible = false;
int testValue = 0;
//produces submap
Map<DateTime, Integer> nav = tree2.subMap(startx, endx);

for (Integer capacity : tree2.subMap(startx, endx).values()) {
    //Provides an insight into capacity accomodation possibility
    //testValue++;
    terminals = 20;
    if(capacity >= terminals)
        possible = true;
    else if(capacity < terminals)
        possible = false;

}

if(possible == true)
{
    for (Integer capacity : tree2.subMap(startx, endx).values()) {
    {
        capacity -= terminals;
        //not sure what to do
    }
}
}else{

}

return possible;

Он проверяет диапазон дат в подкарте.затем проверяет, могут ли значения этих дат (которые, между прочим, являются ключами) соответствовать терминалам (то есть номер бронирования), тогда, если да, это вычтет это из пропускной способности, которая в настоящее время находится на карте.Я не уверен, как обновить емкость на карте для всех дат между startx и endx со значением

capacity -= terminals;

Спасибо, :)

1 Ответ

9 голосов
/ 18 ноября 2011

Вы должны заново вставить ключ / значение в карту с обновленным значением.

tree2.put(key, tree2.get(key) - terminals);
...