Java HashMap forEach(BiConsumer)方法及示例
HashMap类的 forEach(BiConsumer) 方法对hashhmap的每个条目进行BiConsumer操作,直到所有条目都被处理完毕或该操作抛出一个异常。BiConsumer操作是对hashtable的键值对按照迭代的顺序进行的函数操作。方法遍历Hashtable的每个元素,直到所有的元素都被方法处理过或者发生异常。由操作抛出的异常会传递给调用者。
语法
public void forEach(BiConsumer action)
参数: 该方法接受一个BiConsumer类型的参数action,表示对HashMap元素进行的操作。
返回: 该方法不返回任何东西。
异常: 如果动作为空,该方法会抛出NullPointerException。
下面的程序说明了forEach(BiConsumer)方法。
程序1:使用动作遍历一个哈希图
// Java program to demonstrate
// forEach(BiConsumer) method.
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
public class GFG {
// Main method
public static void main(String[] args)
{
// create a HashMap and add some values
Map<String, Integer> map
= new HashMap<>();
map.put("geeks", 55);
map.put("for", 13);
map.put("geeks", 22);
map.put("is", 11);
map.put("heaven", 90);
map.put("for", 100);
map.put("geekies like us", 96);
// creating a custom action
BiConsumer<String, Integer> action
= new MyBiConsumer();
// calling forEach method
map.forEach(action);
}
}
// Defining Our Action in MyBiConsumer class
class MyBiConsumer implements BiConsumer<String, Integer> {
public void accept(String k, Integer v)
{
System.out.print("Key = " + k);
System.out.print("\t Value = " + v);
System.out.println();
}
}
输出。
Key = geeks Value = 22
Key = for Value = 100
Key = is Value = 11
Key = heaven Value = 90
Key = geekies like us Value = 96
程序2
// Java program to demonstrate
// forEach(BiConsumer) method.
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
public class GFG {
// Main method
public static void main(String[] args)
{
// Create a HashMap
// and add some values
Map<String, Integer> map
= new HashMap<>();
map.put("geeks", 55);
map.put("for", 13);
map.put("geeks", 22);
map.put("is", 11);
map.put("heaven", 90);
map.put("for", 100);
map.put("geekies like us", 96);
// creating an action
BiConsumer<String, Integer> action
= new MyBiConsumer();
// calling forEach method
map.forEach(action);
}
}
// Defining Our Action in MyBiConsumer class
class MyBiConsumer implements BiConsumer<String, Integer> {
public void accept(String k, Integer v)
{
System.out.println("Key: " + k
+ "\tValue: " + v);
if ("for".equals(k)) {
System.out.println("Its the "
+ "highest value\n");
}
}
}
输出。
Key: geeks Value: 22
Key: for Value: 100
Its the highest value
Key: is Value: 11
Key: heaven Value: 90
Key: geekies like us Value: 96
参考资料: https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html#forEach-java.util.function.BiConsumer-