2019-01-06 一種更優雅的方式 replaceall()
需求:
對map中的所有值統一增減
基礎版本
下面這個方式是可行
的,但是看著不太優雅
public static void main(string args)
複製**
誤用版本--merge 有***
經過一番研究之後發現了一種簡單的方式,但是有個限制merge之後不能發生結構性修改(也就是map中元素數量不能發生變化)
,在當前場景下只要保證merge後不為空值即可
public class mapincr
}複製**
關鍵就是map.merge()
,原始碼如下
default v merge(k key, v value,
objects.requirenonnull(value);
v oldvalue = get(key);
v newvalue = (oldvalue == null) ? value :
if(newvalue == null) else
return newvalue;
}複製**
可以看到如果新值為空就會被移除掉
最佳版本--replaceall
replaceall會對map中的所有元素使用傳遞進來的bifunction進行更新.
public class mapincr
}複製**
小技巧 自增或自減符號位置
看到別人文章的乙個小技巧,說把自增或自減符號放到前面比放後面會快一點。當然,這是在 i 和 i效果一樣的情況下可以這麼做,我一般是在foreach之後會用到。自己測試一下 start gettimeofday true a 0 for i 0 i 10000000 i echo a echo chr...
Perl中的自增 自減
perl也支援數值型別的自增和自減操作。不僅如此,還支援字元 字串的自增 自減。a 10 以下4句為獨立的自增 自減表示式,自增自減符號的位置無所謂 a 先返回10,再遞增為11 a 先遞增為12,再返回12 a 先遞減為11,再返回11 a 先返回11,再遞減為10 以下4句為非獨立的自增 自減表...
php中mysql自增 MySQL的自增欄位
1.關鍵字 auto increment 2.自增用法 例 create table animals id mediumint not null auto increment,name char 30 not nu 1.關鍵字 auto increment 2.自增用法 例 create table...