Java HashMap forEach()方法用于對(duì)哈希映射的每個(gè)映射執(zhí)行指定的操作。
forEach()方法的語(yǔ)法為:
hashmap.forEach(BiConsumer<K, V> action)
action - 對(duì)HashMap的每個(gè)映射執(zhí)行的操作
forEach()方法不返回任何值。
import java.util.HashMap; class Main { public static void main(String[] args) { // 創(chuàng)建 HashMap HashMap<String, Integer> prices = new HashMap<>(); //向HashMap插入條目 prices.put("Shoes", 200); prices.put("Bag", 300); prices.put("Pant", 150); System.out.println("市場(chǎng)價(jià): " + prices); System.out.print("折扣價(jià): "); // 將lambda表達(dá)式傳遞給 forEach() prices.forEach((key, value) -> { // 值降低10% value = value - value * 10/100; System.out.print(key + "=" + value + " "); }); } }
輸出結(jié)果
市場(chǎng)價(jià): {Pant=150, Bag=300, Shoes=200} 折扣價(jià): Pant=135 Bag=270 Shoes=180
在上面的示例中,我們創(chuàng)建了一個(gè)名為prices的哈希映射。注意代碼,
prices.forEach((key, value) -> { value = value - value * 10/100; System.out.print(key + "=" + value + " "); });
我們已將lambda表達(dá)式作為該forEach()方法的參數(shù)傳遞。這里,
forEach()方法為哈希表的每個(gè)條目執(zhí)行由lambda表達(dá)式指定的操作
lambda表達(dá)式將每個(gè)值減少10%,并打印所有鍵和減少的值
要了解有關(guān)lambda表達(dá)式的更多信息,請(qǐng)?jiān)L問(wèn)Java Lambda 表達(dá)式。
注意:forEach()方法與for-each循環(huán)不同。我們可以使用Java for-each循環(huán)遍歷哈希表的每個(gè)條目。