Java中 forEach(BiConsumer) 方法的属性和示例
Properties 类的forEach(BiConsumer)方法对 hashtable 的每个条目执行 BiConsumer 操作,直到所有条目都处理完或该操作引发异常。 BiConsumer 操作是对哈希表的键值对按迭代顺序进行的函数操作。方法遍历Hashtable的每个元素,直到所有元素都被方法处理完或者发生异常。操作抛出的异常被传递给调用者。
句法:
public void forEach(BiConsumer action)
参数:此方法接受 BiConsumer 类型的参数操作,该操作表示要对属性元素执行的操作。
返回:此方法不返回任何内容。
异常:如果操作为空,此方法将抛出NullPointerException 。
下面的程序说明了 forEach(BiConsumer) 方法:
方案一:
// Java program to demonstrate
// forEach(BiConsumer) method.
import java.util.*;
public class GFG {
// Main method
public static void main(String[] args)
{
// Create a properties and add some values
Properties properties = new Properties();
properties.put("Pen", 10);
properties.put("Book", 500);
properties.put("Clothes", 400);
properties.put("Mobile", 5000);
// Print Properties details
System.out.println("Properties 1: "
+ properties.toString());
// Add 100 in each value using forEach()
properties.forEach((k, v) -> {
v = (int)v + 100;
properties.replace(k, v);
});
// Print new mapping using forEcah()
properties.forEach(
(k, v) -> System.out.println("Key : " + k + ", Value : " + v));
}
}
输出:
Properties 1: {Book=500, Mobile=5000, Pen=10, Clothes=400}
Key : Clothes, Value : 500
Key : Mobile, Value : 5100
Key : Pen, Value : 110
Key : Book, Value : 600
程序 2:显示 NullPointerException
// Java program to demonstrate
// forEach(BiConsumer) method.
import java.util.*;
public class GFG {
// Main method
public static void main(String[] args)
{
// Create a properties and add some values
Properties properties = new Properties();
properties.put(1, "100RS");
properties.put(2, "500RS");
properties.put(3, "1000RS");
// Print Properties details
System.out.println("Current Properties: "
+ properties.toString());
try {
// add 100 in each value using forEach()
properties.forEach((k, v) -> {
v = (String)v + "100";
properties.put(null, v);
});
}
catch (Exception e) {
System.out.println("Exception: " + e);
}
}
}
输出:
Current Properties: {3=1000RS, 2=500RS, 1=100RS}
Exception: java.lang.NullPointerException
参考资料:https://docs.oracle.com/javase/9/docs/api/ Java/util/Properties.html#forEach-java.util。函数.BiConsumer-