📜  Java HashMap replaceAll()

📅  最后修改于: 2020-09-27 00:48:44             🧑  作者: Mango

Java HashMap replaceAll()方法用指定函数的结果替换哈希表的所有映射。

replaceAll()方法的语法为:

hashmap.replaceAll(Bifunction function)

在这里, hashmapHashMap类的对象。


replaceAll()参数

replaceAll()方法采用单个参数。

  • 函数 -应用于哈希表每个条目的操作

replaceAll()返回值

replaceAll()方法不返回任何值。相反,它用来自函数的新值替换了哈希图的所有值。


示例1:将所有值更改为大写
import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // create an HashMap
        HashMap languages = new HashMap<>();

        // add entries to the HashMap
        languages.put(1, "java");
        languages.put(2, "javascript");
        languages.put(3, "python");
        System.out.println("HashMap: " + languages);

        // Change all value to uppercase
        languages.replaceAll((key, value) -> value.toUpperCase());
        System.out.println("Updated HashMap: " + languages);
    }
}

输出

HashMap: {1=java, 2=javascript, 3=python}
Updated HashMap: {1=JAVA, 2=JAVASCRIPT, 3=PYTHON}

在上面的示例中,我们创建了一个名为language的哈希表。注意这一行,

languages.replaceAll((key, value) -> value.toUpperCase());

这里,

  • (key, value) -> value.toUpperCase()是一个lambda表达式。它将哈希表的所有值都转换为大写并返回。要了解更多信息,请访问Java Lambda Expression。
  • replaceAll()用lambda表达式返回的值替换哈希图的所有值。

示例2:将所有值替换为键的平方
import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // create an HashMap
        HashMap numbers = new HashMap<>();

        // insert entries to the HashMap
        numbers.put(5, 0);
        numbers.put(8, 1);
        numbers.put(9, 2);
        System.out.println("HashMap: " + numbers);

        // replace all value with the square of key
        numbers.replaceAll((key, value) -> key * key);;
        System.out.println("Updated HashMap: " + numbers);
    }
}

输出

HashMap: {5=0, 8=1, 9=2}
Updated HashMap: {5=25, 8=64, 9=81}

在上面的例子中,我们创建了一个名为HashMap的数字 。注意这一行,

numbers.replaceAll((key, value) -> key * key);

这里,

  • (key, value) -> key * key -计算密钥 ,并返回它的平方
  • replaceAll() -用(key, value) -> key * key返回的值替换哈希图的所有值