java8 map新特性,Java8新特性——Map的新方法

今天是高考的日子,是大四師兄師姐答辯畢業的日子。一代又來,一代又去。好久沒寫博客,借此特殊日子整理一下前不久學java8新特性時寫的代碼,留下痕跡。(本博客的代碼根據

本篇介紹java8的新特性之一:Map的新方法。

import java.util.HashMap;

import java.util.Map;

import org.junit.Test;

/**

* Map

*/

public class NewMap {

@Test

public void testMap(){

Map map = new HashMap<>();

for(int i=0; i<10; i++){

//putIfAbsent使得我們不用寫是否為null值的檢測語句;

map.putIfAbsent(i, "val_"+i);

}

//-------1------maps不支持流。然而現在maps包括了許多新的非常有用的方法用於執行通用任務:

//forEach使用consumer來對map中的每個元素進行操作,執行通用任務。

map.forEach( (key,value) -> System.err.println(key +" : "+value) );

//----------2-------------------使用功能性函數在map里執行代碼:

//將key為3對應的值(val_3)改為 "val_3"+3*10 = val_330

map.computeIfPresent(3, (num, val) -> val + num*10);

System.err.println(map.get(3)); //val_330

//將key為9對應的值(val_9)改為 null

map.computeIfPresent(9, (num, val) -> null);

map.containsKey(9); // false

//將key為23對應的值(null)改為 "val_23"

map.computeIfAbsent(23, num -> "val" + num);

map.containsKey(23); // true

map.put(3, null);

//如果key為3對應的值改為null, 將其值改為"bam"

map.computeIfAbsent(3, num -> "bam");

System.err.println(map.get(3));// bam

//---------3--------------刪除給定鍵所對應的元素。刪除操作還需要滿足給定的值需要和map中的值相等:

map.remove(3, "val3");

map.get(3); // val33

map.remove(3, "val33");

map.get(3); // null

//----------4--------其他一些幫助性方法:

map.getOrDefault(44, "404 not found");

//---------------5----------------合並map中的實體

//此時map.get(9)=null

map.merge(9, "val999", (value, newValue) -> value.concat(newValue));

map.get(9); // val999

System.err.println(map.get(9));

map.merge(9, "concat", (value, newValue) -> value.concat(newValue));

map.get(9); // val999concat

System.err.println(map.get(9));

}

}

詳情請見這篇博客:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值