Метод replace
Метод replace класса HashMap заменяет значение,
связанное с указанным ключом. Первым параметром метод принимает
ключ, значение которого нужно заменить. Вторым параметром
передается новое значение. Если ключ отсутствует в коллекции,
замена не происходит. Существует также перегрузка метода,
которая принимает три параметра: ключ, ожидаемое старое значение
и новое значение. В этом случае замена выполняется только тогда,
когда текущее значение совпадает с ожидаемым. Метод возвращает
предыдущее значение, связанное с ключом, либо null,
если ключа не было в коллекции или замена не удалась.
Синтаксис
map.replace(key, newValue)
map.replace(key, oldValue, newValue)
Пример
Давайте создадим коллекцию HashMap и заменим значение
по существующему ключу:
import java.util.HashMap;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Integer res = map.replace("b", 20);
System.out.println(res);
System.out.println(map);
}
}
Результат выполнения кода:
2
{a=1, b=20, c=3}
Пример
Давайте попробуем заменить значение по ключу, которого нет в коллекции:
import java.util.HashMap;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Integer res = map.replace("d", 40);
System.out.println(res);
System.out.println(map);
}
}
Результат выполнения кода:
null
{a=1, b=2, c=3}
Пример
Давайте используем перегрузку с тремя параметрами и заменим значение только при совпадении ожидаемого старого значения:
import java.util.HashMap;
public class Main
{
public static void main(String[] args)
{
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
boolean res1 = map.replace("b", 2, 20);
boolean res2 = map.replace("c", 5, 30);
System.out.println(res1);
System.out.println(res2);
System.out.println(map);
}
}
Результат выполнения кода:
true
false
{a=1, b=20, c=3}