Java有趣的小功能_Java8 中有趣酷炫的小技巧你用到了那些
執(zhí)行注釋
大多數(shù)開發(fā)人員認(rèn)為 注釋 永遠(yuǎn)不會在程序中執(zhí)行,并用于幫助代碼理解。但是,它們卻 可以被執(zhí)行:public?class?Main{
public?static?void?main(String[]?args){
//?\u000d?System.out.println("wmyskxz?is?awesome!");
}
}
程序輸出:wmyskxz?is?awesome!
說明
Java 允許使用 Unicode 字符而不進行編碼。這里的 Unicode 字符 \u000d 被 Java 編譯器解析為新行,因此可以理解為該 Unicode 字符后面出現(xiàn)的語句會在下一行被執(zhí)行。
雙括號初始化集合
在 Java 中,Set/ List/ Map 等集合對象沒有在生命期間初始化值的簡單方法 (Java 11 支持了該類操作)。開發(fā)人員要么將值顯式地傳送到集合內(nèi),要么為常量集合創(chuàng)建一個靜態(tài)塊。
使用雙括號初始化,可以在聲明過程中以更少的精力和時間初始化集合。例如:Set?set?=?new?HashSet()?{{
add("wmyskxz");
add("is");
add("awesome");
add("!");
}?};
System.out.println(set);
程序輸出:[awesome,?!,?wmyskxz,?is]“
在 Java 11 中,你可以使用 Set.of("wmyskxz", "is", "awesome", "!") 代替,這里僅僅討論 Java 8
另外對于 ArrayList 集合類型還是有簡單初始化方法的:Arrays.asList()
獲取數(shù)組插入數(shù)字元素的下標(biāo)
有一個很酷的技巧,可以找到可以在數(shù)組中插入所請求元素的位置:int[]?arr?=?new?int[]?{?1,?3,?4,?5,?6?};
//?2?has?to?be?inserted
int?pos?=?Arrays.binarySearch(arr,?2);
System.out.print("Element?has?to?be?inserted?at:?"
+?~pos);
程序輸出:Element?has?to?be?inserted?at:?1
說明
Arrays.binarySearch() 是 JDK 自己實現(xiàn)的二分查找方法,局限就是目標(biāo)數(shù)組必須是排序好的 (可以使用 Arrays.sort() 進行排序)。
判斷數(shù)字是偶數(shù)還是奇數(shù)
通常我們會使用 num % 2 == 0 (一定記住要使用 偶判斷 而不是奇判斷,原因是負(fù)數(shù)會出錯..) 來判斷數(shù)字是奇數(shù)還是偶數(shù)。下面的技巧盡管并不比上述方法好多少,但在考慮大數(shù)時,效率會高很多:System.out.println((num?&?1)?==?0????"EVEN"?:?"ODD"?);
示例:int?num?=?2;
System.out.println((num?&?1)?==?0???"EVEN"?:?"ODD");
//?輸出?EVEN
num?=?-1;
System.out.println((num?&?1)?==?0???"EVEN"?:?"ODD");
//?輸出?ODD
快速乘或除 2
二進制中,乘以 2 表示將所有位向左移動,除以 2 表示向右移動。n?=?n?<
n?=?n?>>?1;???//?Divide?n?by?2
判斷素數(shù)
Java 在 BigInteger 類中內(nèi)置了 isProbablePrime() 方法。如果此 BigInteger 可能是質(zhì)數(shù)(可以肯定),則返回 true,如果它肯定是復(fù)合的,則返回 false。BigInteger.valueOf(1235).isProbablePrime(1)
More..
歡迎補充
參考資料Interesting and Cool Tricks in Java - https://www.geeksforgeeks.org/interesting-and-cool-tricks-in-java/?ref=leftbar-rightbar
Java tricks for competitive programming (for Java 8) - https://www.geeksforgeeks.org/java-tricks-competitive-programming-java-8/?ref=rp
END
精彩推薦
我知道你 “在看”
總結(jié)
以上是生活随笔為你收集整理的Java有趣的小功能_Java8 中有趣酷炫的小技巧你用到了那些的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么表示10 2_java -X
- 下一篇: java socket 如何设置so_k