色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

jdk8中map的merge方法介紹

時(shí)間:2023-05-16

1.Map.merge辦法介紹
jdk8對(duì)于許多常用的類都擴(kuò)展了一些面向函數(shù),lambda表達(dá)式,辦法引用的功能,使得java面向函數(shù)編程更為方便。其中Map.merge辦法就是其中一個(gè),merge辦法有三個(gè)參數(shù),key:map中的鍵,value:使用者傳入的值,remappingFunction:BiFunction函數(shù)接口(該接口接納兩個(gè)值,執(zhí)行自定義功能并回來終究值)。當(dāng)map中不存在指定的key時(shí),便將傳入的value設(shè)置為key的值,當(dāng)key存在值時(shí),執(zhí)行一個(gè)辦法該辦法接納key的舊值和傳入的value,執(zhí)行自定義的辦法回來終究成果設(shè)置為key的值。
附上源碼
defaultVmerge(Kkey,Vvalue,
BiFunctionsuperV,?superV,?extendsV>remappingFunction){
Objects.requireNonNull(remappingFunction);
Objects.requireNonNull(value);
VoldValue=get(key);
VnewValue=(oldValue==null)?value:
remappingFunction.apply(oldValue,value);if(newValue==null){
remove(key);
}else{
put(key,newValue);
}returnnewValue;
}
2.map.merge()辦法使用場景
merge辦法在計(jì)算時(shí)用的場景比較多,這里舉一個(gè)小栗子:按年紀(jì)計(jì)算出各年紀(jì)的人名。
publicstaticvoidmain(String[]args){//存測試數(shù)據(jù),模仿從數(shù)據(jù)庫讀出的數(shù)據(jù)Listlist=newArrayList<>();
useru1=newuser(“李四”,20);
useru2=newuser(“張三”,30);
useru3=newuser(“隔壁老王”,18);
useru4=newuser(“劈腿老羅”,18);
list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4);//終究merge的數(shù)據(jù)Mapmap=newHashMap<>();
list.forEach(uVo->{//newHashSet(){{}}這是什么寫法,我也不知道。感覺很帥map.merge(uVo.getAge(),newHashSet(){
{
add(uVo.getName());
}
},(oldV,newV)->{
oldV.addAll(newV);returnoldV;
});
});
System.out.println(map);
}

文章標(biāo)簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
ciya68