五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java常用API(part4)

2023-01-30 19:29 作者:回到唐朝當(dāng)少爺  | 我要投稿

Java API(Part4)

最近剛學(xué)Java,隨便記點(diǎn)學(xué)習(xí)筆記,part4主要是Arrays類的用法

Arrays

操作數(shù)組的工具類

Arrays.toString方法可以方便我們快速查看數(shù)組元素而不是寫循環(huán)遍歷 binarySearch查找的前提:數(shù)組有序且升序.如果要查找的數(shù)據(jù)是存在的,返回的是真實(shí)的索引,如果不存在,返回-插入點(diǎn)-1(負(fù)插入點(diǎn)-1) copyOf方法的底層會根據(jù)新數(shù)組的長度來創(chuàng)建新的數(shù)組,如果新數(shù)組的長度大于老數(shù)組的長度,會補(bǔ)上默認(rèn)初始值0copyOfRange拷貝細(xì)節(jié):起始索引和結(jié)束索引,包頭不包尾,包左不包右 sort默認(rèn)情況下給基本數(shù)據(jù)類型進(jìn)行升序排列,底層使用的是比傳統(tǒng)單軸快速排序更快的雙軸快速排序

如果實(shí)現(xiàn)按特定規(guī)則的排序,可用public static void sort(數(shù)組,排序規(guī)則),只能給引用數(shù)據(jù)類型的數(shù)組進(jìn)行排序.如果數(shù)組是基本數(shù)據(jù)類型的,需要變成其對應(yīng)的包裝類.第二個(gè)參數(shù)是一個(gè)接口,所以在調(diào)用方法的時(shí)候,需要傳遞這個(gè)接口的實(shí)現(xiàn)類對象,作為排序的規(guī)則

底層原理:插入排序+二分查找 默認(rèn)把0索引的數(shù)據(jù)當(dāng)作是有序的序列,1索引到最后認(rèn)為是無序的序列 遍歷無序的序列得到里面每一個(gè)元素,假設(shè)當(dāng)前拿到A元素,把A往有序序列中進(jìn)行插入,插入時(shí)利用二分查找確定A元素的插入點(diǎn),拿著A元素與插入點(diǎn)的元素進(jìn)行比較,比較的規(guī)則就是定義的compare方法的方法體 如果方法的返回值是負(fù)數(shù),拿A繼續(xù)和前面的數(shù)據(jù)進(jìn)行比較 如果方法的返回值是正數(shù)或0,拿A繼續(xù)和后面的數(shù)據(jù)進(jìn)行比較 直到能確定A的最終位置

compare方法的形參 o1:表示在無序序列中遍歷得到的每一個(gè)元素 o2:表示有序序列中的元素

返回值: 正數(shù)和0:表示當(dāng)前要插入的元素是大的,放在后面 負(fù)數(shù):表示當(dāng)前要插入的元素是小的,放在前面

簡單理解: o1-o2:升序 o2-o1:降序

使用Lambda表達(dá)式對上面的代碼進(jìn)行簡化

lambda表達(dá)式(JDK8以后):

函數(shù)式編程(Functional programming)是一種思想特點(diǎn),忽略面向?qū)ο蟮膹?fù)雜語法,強(qiáng)調(diào)做什么而不是誰去做

注意:

  • lambda表達(dá)式可以用來簡化匿名內(nèi)部類的書寫

  • lambda表達(dá)式只能簡化函數(shù)式接口的匿名內(nèi)部類的寫法

  • 函數(shù)式接口:有且只有一個(gè)抽象方法的接口叫作函數(shù)式接口,接口上方可以加@FunctionalInterface注解

lambda的省略規(guī)則:

  1. 參數(shù)類型可以省略不寫

  2. 如果只有一個(gè)餐宿,參數(shù)類型可以省略,同時(shí)()可以省略

  3. 如果Lambda表達(dá)式的方法體只有一行,大括號,分號,return可以省略不寫,三者需要同時(shí)省略

核心就是可推導(dǎo),可省略

采用Lambda表達(dá)式省略規(guī)則省略后:

練習(xí)

將字符串?dāng)?shù)組按長度排序

將Person類按年齡,身高,姓名字母的優(yōu)先級排序

往期傳送門:


Java常用API(part4)的評論 (共 條)

分享到微博請遵守國家法律
墨玉县| 贵州省| 顺义区| 九龙城区| 鄂尔多斯市| 莫力| 郸城县| 通海县| 中阳县| 宁海县| 福海县| 永福县| 罗甸县| 榆林市| 和政县| 汉阴县| 大化| 探索| 澄城县| 威宁| 抚松县| 肥乡县| 长白| 潮安县| 邵东县| 安陆市| 东海县| 栾川县| 武夷山市| 巫山县| 章丘市| 惠来县| 行唐县| 上思县| 上蔡县| 华宁县| 博野县| 民权县| 邯郸县| 五大连池市| 沈丘县|