第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將多個 int 值與 0 進(jìn)行比較的有效方法

將多個 int 值與 0 進(jìn)行比較的有效方法

滄海一幻覺 2023-09-20 16:28:35
我正在嘗試將三個長度與 0 進(jìn)行比較,并且想知道是否有比重復(fù)“!= 0”更有效/更干凈的方法。public static boolean isTriangle(int lengthA, int lengthB, int lengthC) {    if (lengthA != 0 && lengthB != 0 && lengthC != 0) { //is there a shorter/cleaner way to write this?        //do a thing    }    return false;}
查看完整描述

4 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊

您可以使用IntStream和allMatch


if(IntStream.of(lengthA,lengthB,lengthC).allMatch(i->i!=0)) {

     // do a thing

  }

noneMatch或者也使用


IntStream.of(lengthA,lengthB,lengthC).noneMatch(i->i==0)

另一種方法是使用 util 方法


public static boolean isNotZero(int val) {

       return val!=0;

     }

現(xiàn)在簡化if條件


if (isNotZero(lengthA) && isNotZero(lengthB) && isNotZero(lengthC)) { 


查看完整回答
反對 回復(fù) 2023-09-20
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個贊

你問了三件事;你要求的代碼是

  1. 更短

  2. 更高效

  3. 清潔工

我有一個替代方案給你:

if ((lengthA & lengthB & lengthC) != 0)

這是正確的 - 它的作用與您的舊代碼相同(它使用按位與)

  1. 更短。

  2. 它可能更有效,但只有良好的微基準(zhǔn)測試才能證實(shí)。即使是這樣,也不應(yīng)該指導(dǎo)您。由于第 3 點(diǎn),只有當(dāng)它在使用性能分析工具的應(yīng)用程序中顯示為瓶頸時才應(yīng)考慮它,而這種可能性非常非常小。

  3. 但它并不干凈。我的意思是,這將使您的代碼更難以閱讀和理解,并且任何維護(hù)您的代碼的人現(xiàn)在都必須考慮位操作。

任何提議的替代方案很可能也是如此。

您在原始代碼中所做的事情已經(jīng)足夠好了;這是人們所理解的,而且很可能是您可以為此目的編寫的最簡潔的代碼。


查看完整回答
反對 回復(fù) 2023-09-20
?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個贊

最佳答案(恕我直言): “甚至不要嘗試去猜測優(yōu)化編譯器。” 只需以最準(zhǔn)確地指定(對您的人類同胞來說,僅此而已......)您希望計算機(jī)執(zhí)行的操作的方式 指定源代碼。不要假設(shè)實(shí)際提供給硬件的機(jī)器指令的實(shí)際序列實(shí)際上與此相對應(yīng)。 “這很神奇。真的?!?/em>



查看完整回答
反對 回復(fù) 2023-09-20
?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊

對于Java語言來說,你的代碼很好。在 Java 中沒有更好的方法來做到這一點(diǎn)。



查看完整回答
反對 回復(fù) 2023-09-20
  • 4 回答
  • 0 關(guān)注
  • 187 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號