淺談Java三目運(yùn)算
三目條件運(yùn)算公式為 x?y:z 其中x的運(yùn)算結(jié)果為boolean類型,先計(jì)算x的值,若為true,則整個(gè)三目運(yùn)算的結(jié)果為表達(dá)式y(tǒng)的值,否則整個(gè)運(yùn)算結(jié)果為表達(dá)式z的值
例:String s="";
String x="默認(rèn)值";
s=s.isEmpty()?x:s;
這段代碼的意思是:先判斷s是否為空(結(jié)果是空),然后執(zhí)行s=x,即執(zhí)行x
再來一個(gè)復(fù)雜點(diǎn)的
class Dates {
int year,month,day;
Dates(int x,int y,int z){
year=x;
month=y;
day=z;
}
public static int compare(Dates a){
return year>a.year?1
:year<a.year?-1
:month>a.month?1
:month<a.month?-1
:day>a.day?1
:day<a.day?-1:0;
}
1、三目運(yùn)算符 (表達(dá)式1)?(表達(dá)式2):(表達(dá)式3),計(jì)算方法是這樣的:表達(dá)式1是一個(gè)邏輯表達(dá)式,如果其值為true,則整個(gè)表達(dá)式的值為表達(dá)式2的值,否則為表達(dá)式3的值
2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);結(jié)果為i = 8.因?yàn)? > 3為true,所以i = 5 + 3.
3、根據(jù)三目運(yùn)算符的從右到左的結(jié)合性,我是這樣劃分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以應(yīng)該從最右邊的那個(gè)表達(dá)式開始計(jì)算,結(jié)果應(yīng)該是1、0、-1中的一個(gè)值。
以上純屬個(gè)人理解。沒搞清楚你這個(gè)算法到底是什么意義。。。。
請您花一點(diǎn)時(shí)間將文章分享給您的朋友或者留下評(píng)論。我們將會(huì)由衷感謝您的支持!
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之哈希算法實(shí)現(xiàn)
哈希表本質(zhì)是一種(key,value)結(jié)構(gòu),由此我們可以聯(lián)想到,能不能把哈希表的key映射成數(shù)組的索引index呢?如果這樣做的話那么查詢相當(dāng)于直接查詢索引,查詢時(shí)間復(fù)雜度為O(1),其實(shí)這也正是當(dāng)key為int型時(shí)的做法,將key通過某種做法映射成index,從而轉(zhuǎn)換成數(shù)組結(jié)構(gòu)2022-02-02
java實(shí)戰(zhàn)項(xiàng)目之記賬軟件
這篇文章主要介紹了java實(shí)戰(zhàn)項(xiàng)目之記賬軟件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
mybatis+lombok出現(xiàn)java.lang.IndexOutOfBoundsException錯(cuò)誤及解決
在使用MyBatis和Lombok時(shí),如果遇到j(luò)ava.lang.IndexOutOfBoundsException問題,是因?yàn)镸yBatis在嘗試將查詢結(jié)果封裝成Java對象時(shí),找不到構(gòu)造函數(shù)中對應(yīng)的字段,這通常是由于Lombok的@Builder注解生成了全參構(gòu)造函數(shù)2025-02-02
Spring整合Mybatis具體代碼實(shí)現(xiàn)流程
這篇文章主要介紹了Spring整合Mybatis實(shí)操分享,文章首先通過介紹Mybatis的工作原理展開Spring整合Mybatis的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-05-05
Java實(shí)現(xiàn)FIFO功能的完整代碼實(shí)踐
在軟件開發(fā)中,隊(duì)列(Queue)是一種常見的數(shù)據(jù)結(jié)構(gòu),其特點(diǎn)是先進(jìn)先出(FIFO,First In First Out),FIFO 隊(duì)列在生產(chǎn)者-消費(fèi)者模型、任務(wù)調(diào)度、緩沖區(qū)管理等場景中具有廣泛的應(yīng)用,本文給大家介紹了Java實(shí)現(xiàn)FIFO功能的完整代碼實(shí)踐,需要的朋友可以參考下2025-03-03

