今天在學習collections的原始碼時,看到下面的**,聯絡之前自己寫的程式,感受到下面這段**確實巧妙:
1public
static
boolean addall(collection<? super t>c, t... elements)
下面簡單介紹:
「t... elements」 :可變引數列表,元素為泛型t或t的子類。
「|=」:這是類似於「+=」這樣的表示式,是a = a + b這種形式的簡寫a+=b;它們是等價的。或「|」運算,二進位制運算是同「0」為「0」,否則為「1」。邏輯或「|」,同假為假否則為真。
1false |= false =>結果為false;
2true |= false =>結果為true;
3false |= true =>結果為true;
4true |= true => 結果為true;
在第一段**中,2號 boolean result = false; 通過後面的運算,只要有一次c.add(element)的運算其中一次返回true,則整個方法的返回值就是true.——個人感覺精妙之處在於此(略顯少見多怪)
邏輯與「&&」 運算
若我們的需求為:只要有一次失敗,整體返回失敗。只要有一次為假,則都為假。
1public
class
test
8return
result;9}
1011
public
static
void
main(string args)
16 }
巧妙運用位運算
本文旨在通過兩道巧妙運用位運算的題,認識位運算的魅力 題意 給定兩個序列 a,b 求 a,b 的最長公共子串行 a b le 10 5 時限 5s 目前求任意兩序列的最長公共子串行,是沒有複雜度低於 o a cdot b 的演算法的 回顧經典的 o a cdot b f max f f f a i ...
位與 按位或 按位異或 運算
1.按位與運算 按位與運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5可寫算式如下 00001001 9的二進位制補碼 00000101 5的二進位制補碼 00000001 1的二進位制補碼...
位運算( 按位與 按位或 異或)
參加運算的兩個數,按二進位制位進行 運算。運算規則 只有兩個數的二進位制同時為1,結果才為1,否則為0。負數按補碼形式參加按位與運算 即 0 0 0 0 1 0,1 0 0,1 1 1。比如10 11 即 0000 1010 0000 1011 0000 1010 所以 10 11 等於10 參加運...