Метод get
возвращает копию ссылки на сохраненное целое число ...
Присвоение нового значения переменной, в которой хранится эта копия, указывает на значение 10
будет не изменять ссылку на карте.
Это сработало бы, если бы вы могли сделать balance.setValue(10)
, но, поскольку Integer
является неизменным классом, это не вариант.
Если вы хотите, чтобы изменения вступили в силу на карте, вам придется заключить баланс в (изменяемый) класс:
class Balance {
int balance;
...
}
Balance balance = cardNumberBalance_.get(cardNumber);
System.out.println(balance.getBalance());
balance.setBalance(10);
Balance newBalance = cardNumberBalance_.get(cardNumber);
System.out.println(newBalance.getBalance());
Но вы, вероятно, захотите сделатькак-то так:
cardNumberBalance_.put(cardNumber, 10);