日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSComparator

Comparator

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、咸陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為咸陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

@FunctionalInterface
public interface Comparator

一個(gè)比較函數(shù),它對(duì)某些對(duì)象集合進(jìn)行總排序。比較器可以傳遞給排序方法(例如 Collections#sort(List,Comparator) 或 [Arrays#sort(Object],Comparator)),以允許精確控制排序順序。比較器還可用于控制某些數(shù)據(jù)結(jié)構(gòu)(例如 SortedSet 或 SortedMap)的順序,或者為沒(méi)有 Comparable 的對(duì)象集合提供排序。

當(dāng)且僅當(dāng) c.compare(e1, e2)==0 對(duì)于每個(gè) e1 具有與 e1.equals(e2) 相同的布爾值時(shí),比較器 c 對(duì)一組元素 S 施加的排序被稱為與 equals 一致和 S 中的 e2。

當(dāng)使用能夠施加與等于不一致的排序的比較器來(lái)對(duì)排序集(或排序映射)進(jìn)行排序時(shí),應(yīng)謹(jǐn)慎行事。假設(shè)帶有顯式比較器 c 的有序集合(或有序映射)與從集合 S 中提取的元素(或鍵)一起使用。如果 c 對(duì) S 施加的排序與 equals 不一致,則有序集合(或有序映射)將表現(xiàn)得“奇怪”。特別是有序集合(或有序映射)將違反集合(或映射)的一般合同,它是根據(jù)等式定義的。

例如,假設(shè)將兩個(gè)元素 a 和 b 相加,使得 (a.equals(b) && c.compare(a, b) != 0) 到具有比較器 c 的空 TreeSet。第二個(gè) add 操作將返回 true(并且樹集的大小將增加),因?yàn)閺臉浼慕嵌葋?lái)看 a 和 b 不等價(jià),即使這與 Set#add 方法的規(guī)范相反。

注意:比較器通常也實(shí)現(xiàn) java.io.Serializable 是一個(gè)好主意,因?yàn)樗鼈兛梢杂米骺尚蛄谢瘮?shù)據(jù)結(jié)構(gòu)(如 TreeSet、TreeMap)中的排序方法。為了使數(shù)據(jù)結(jié)構(gòu)成功序列化,比較器(如果提供)必須實(shí)現(xiàn) Serializable。

對(duì)于數(shù)學(xué)傾向,定義給定比較器 c 對(duì)給定對(duì)象集 S 施加的強(qiáng)制排序的關(guān)系是:

       {(x, y) such that c.compare(x, y) <= 0}. 

這個(gè)總訂單的商是:

       {(x, y) such that c.compare(x, y) == 0}. 

立即從比較契約得出,商是 S 上的等價(jià)關(guān)系,并且強(qiáng)加的排序是 S 上的全排序。當(dāng)我們說(shuō) c 對(duì) S 強(qiáng)加的排序與 equals 一致時(shí),我們的意思是 排序的商是對(duì)象的 Object#equals(Object) 方法定義的等價(jià)關(guān)系:

     {(x, y) such that x.equals(y)}. 

與 Comparable 不同的是,比較器可以選擇允許比較空參數(shù),同時(shí)保持對(duì)等價(jià)關(guān)系的要求。

此接口是 Java 集合框架的成員。

方法總結(jié)

修飾符和類型 方法 描述
int compare(T o1, T o2) 比較它的兩個(gè)參數(shù)的順序。
static >Comparator comparing(Function keyExtractor) 接受從類型 T 中提取 Comparable 排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator
static  Comparator comparing(Function keyExtractor, Comparator keyComparator) 接受一個(gè)從類型 T 中提取排序鍵的函數(shù),并返回一個(gè) Comparator,該函數(shù)使用指定的 Comparator 按該排序鍵進(jìn)行比較。
static  Comparator comparingDouble(ToDoubleFunction keyExtractor) 接受一個(gè)從類型 T 中提取雙重排序鍵的函數(shù),并返回一個(gè)按該排序鍵進(jìn)行比較的 Comparator。
static  Comparator comparingInt(ToIntFunction keyExtractor) 接受從類型 T 中提取 int 排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator。
static  Comparator comparingLong(ToLongFunction keyExtractor) 接受從類型 T 中提取長(zhǎng)排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator
boolean equals(Object obj) 指示某個(gè)其他對(duì)象是否“等于”此比較器。
static >Comparator naturalOrder() 返回按自然順序比較 Comparable 對(duì)象的比較器。
static  Comparator nullsFirst(Comparator comparator) 返回一個(gè) null 友好的比較器,它認(rèn)為 null 小于非 null。
static  Comparator nullsLast(Comparator comparator) 返回一個(gè) null 友好的比較器,它認(rèn)為 null 大于非 null。
default ComparatorT reversed() 返回一個(gè)強(qiáng)制此比較器反向排序的比較器。
static >Comparator reverseOrder() 返回一個(gè)強(qiáng)制與自然順序相反的比較器。
default ComparatorT thenComparing(Comparator other) 返回具有另一個(gè)比較器的字典順序比較器。
default >ComparatorT thenComparing(Function keyExtractor) 返回具有提取 Comparable 排序鍵的函數(shù)的字典順序比較器。
default  ComparatorT thenComparing(Function keyExtractor, Comparator keyComparator) 返回一個(gè)字典順序比較器,其函數(shù)提取要與給定比較器比較的鍵。
default ComparatorT thenComparingDouble(ToDoubleFunction keyExtractor) 返回具有提取雙排序鍵的函數(shù)的字典順序比較器。
default ComparatorT thenComparingInt(ToIntFunction keyExtractor) 返回具有提取 int 排序鍵的函數(shù)的字典順序比較器。
default ComparatorT thenComparingLong(ToLongFunction keyExtractor) 返回具有提取長(zhǎng)排序鍵的函數(shù)的字典順序比較器。

方法詳情

compare

int compare(T o1, T o2)

比較它的兩個(gè)參數(shù)的順序。返回負(fù)整數(shù)、零或正整數(shù),因?yàn)榈谝粋€(gè)參數(shù)小于、等于或大于第二個(gè)。

在前面的描述中,符號(hào)sgn(expression)表示數(shù)學(xué)符號(hào)函數(shù),它被定義為根據(jù)表達(dá)式的值是負(fù)數(shù)、零還是正數(shù)返回-1、0或1之一。

實(shí)現(xiàn)者必須確保所有 x 和 y 的 sgn(compare(x, y)) == -sgn(compare(y, x))。 (這意味著當(dāng)且僅當(dāng) compare(y, x) 拋出異常時(shí) compare(x, y) 必須拋出異常。)

實(shí)現(xiàn)者還必須確保關(guān)系是可傳遞的: ((compare(x, y)>0) && (compare(y, z)>0)) 意味著 compare(x, z)>0。

最后,實(shí)現(xiàn)者必須確保 compare(x, y)==0 意味著所有 z 的 sgn(compare(x, z))==sgn(compare(y, z))。

通常是這樣,但并不嚴(yán)格要求 (compare(x, y)==0) == (x.equals(y))。一般來(lái)說(shuō),任何違反此條件的比較器都應(yīng)清楚地表明這一事實(shí)。推薦的語(yǔ)言是“注意:這個(gè)比較器強(qiáng)加了與等于不一致的排序?!?/p>

參數(shù):

參數(shù)名稱 參數(shù)描述
o1 第一個(gè)要比較的對(duì)象。
o2 第二個(gè)要比較的對(duì)象。

返回:

作為第一個(gè)參數(shù)的負(fù)整數(shù)、零或正整數(shù)小于、等于或大于第二個(gè)參數(shù)。

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空且此比較器不允許空參數(shù)
ClassCastException 如果參數(shù)的類型阻止它們被此比較器進(jìn)行比較。

equals

boolean equals(Object obj)

指示某個(gè)其他對(duì)象是否“等于”此比較器。 此方法必須遵守 Object#equals(Object) 的一般約定。 此外,只有當(dāng)指定的對(duì)象也是一個(gè)比較器并且它強(qiáng)制執(zhí)行與此比較器相同的排序時(shí),此方法才能返回 true。 因此,對(duì)于每個(gè)對(duì)象引用 o1 和 o2,comp1.equals(comp2) 意味著 sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))。

請(qǐng)注意,不要覆蓋 Object.equals(Object) 始終是安全的。 但是,在某些情況下,重寫此方法可能會(huì)通過(guò)允許程序確定兩個(gè)不同的比較器施加相同的順序來(lái)提高性能。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要與之比較的參考對(duì)象。

返回:

僅當(dāng)指定對(duì)象也是一個(gè)比較器并且它施加與此比較器相同的順序時(shí)才為true。

reversed

default ComparatorT reversed()

返回一個(gè)強(qiáng)制此比較器反向排序的比較器。

返回:

一個(gè)比較器,它強(qiáng)制此比較器的反向排序。

thenComparing

default ComparatorT thenComparing(Comparator other)

返回具有另一個(gè)比較器的字典順序比較器。 如果此 Comparator 認(rèn)為兩個(gè)元素相等,即 compare(a, b) == 0,則使用 other 來(lái)確定順序。

如果指定的比較器也是可序列化的,則返回的比較器是可序列化的。

參數(shù):

參數(shù)名稱 參數(shù)描述
other 當(dāng)此比較器比較兩個(gè)相等的對(duì)象時(shí)要使用的另一個(gè)比較器。

返回:

由這個(gè)比較器和另一個(gè)比較器組成的字典順序比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空。

thenComparing

default ComparatorT thenComparing(Function keyExtractor, Comparator keyComparator)

返回一個(gè)字典順序比較器,其函數(shù)提取要與給定比較器比較的鍵。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
U 排序鍵的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取排序鍵的函數(shù)
keyComparator 用于比較排序鍵的 Comparator

返回:

由該比較器組成的字典順序比較器,然后對(duì) keyExtractor 函數(shù)提取的鍵進(jìn)行比較

Throws:

Throw名稱 Throw描述
NullPointerException 如果任一參數(shù)為空。

thenComparing

default > ComparatorT thenComparing(Function keyExtractor)

返回具有提取 Comparable 排序鍵的函數(shù)的字典順序比較器。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
U Comparable 排序鍵的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取 Comparable 排序鍵的函數(shù)

返回:

由 this 和 Comparable 排序鍵組成的字典順序比較器。

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空。

thenComparingInt

default ComparatorT thenComparingInt(ToIntFunction keyExtractor)

返回具有提取 int 排序鍵的函數(shù)的字典順序比較器。

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取整數(shù)排序鍵的函數(shù)

返回:

由 this 和 int 排序鍵組成的字典順序比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空。

thenComparingLong

default ComparatorT thenComparingLong(ToLongFunction keyExtractor)

返回具有提取長(zhǎng)排序鍵的函數(shù)的字典順序比較器。

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取長(zhǎng)排序鍵的函數(shù)

返回:

由 this 和長(zhǎng)排序鍵組成的字典順序比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空。

thenComparingDouble

default ComparatorT thenComparingDouble(ToDoubleFunction keyExtractor)

返回具有提取雙排序鍵的函數(shù)的字典順序比較器。

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取雙重排序鍵的函數(shù)

返回:

由 this 和雙排序鍵組成的字典順序比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空。

reverseOrder

static > Comparator reverseOrder()

返回一個(gè)強(qiáng)制與自然順序相反的比較器。

返回的比較器是可序列化的,并在比較 null 時(shí)拋出 NullPointerException。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素的 Comparable 類型

返回:

一個(gè)比較器,它對(duì) Comparable 對(duì)象施加相反的自然順序。

naturalOrder

static > Comparator naturalOrder()

返回按自然順序比較 Comparable 對(duì)象的比較器。

返回的比較器是可序列化的,并在比較 null 時(shí)拋出 NullPointerException。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素的 Comparable 類型

返回:

對(duì) Comparable 對(duì)象施加自然排序的比較器。

nullsFirst

static Comparator nullsFirst(Comparator comparator)

返回一個(gè) null 友好的比較器,它認(rèn)為 null 小于非 null。 當(dāng)兩者都為空時(shí),它們被認(rèn)為是相等的。 如果兩者都不為空,則使用指定的 Comparator 來(lái)確定順序。 如果指定的比較器為空,則返回的比較器將所有非空值視為相等。

如果指定的比較器是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
comparator 用于比較非空值的比較器

返回:

一個(gè)比較器,它認(rèn)為 null 小于非 null,并將非 null 對(duì)象與提供的 Comparator 進(jìn)行比較。

nullsLast

static Comparator nullsLast(Comparator comparator)

返回一個(gè) null 友好的比較器,它認(rèn)為 null 大于非 null。 當(dāng)兩者都為空時(shí),它們被認(rèn)為是相等的。 如果兩者都不為空,則使用指定的 Comparator 來(lái)確定順序。 如果指定的比較器為空,則返回的比較器將所有非空值視為相等。

如果指定的比較器是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
comparator 用于比較非空值的比較器

返回:

一個(gè)比較器,它認(rèn)為 null 大于非 null,并將非 null 對(duì)象與提供的 Comparator 進(jìn)行比較。

comparing

static Comparator comparing(Function keyExtractor, Comparator keyComparator)

接受一個(gè)從類型 T 中提取排序鍵的函數(shù),并返回一個(gè) Comparator,該函數(shù)使用指定的 Comparator 按該排序鍵進(jìn)行比較。

如果指定的函數(shù)和比較器都是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素類型
U 排序鍵的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取排序鍵的函數(shù)
keyComparator 用于比較排序鍵的 Comparator

返回:

一個(gè)比較器,它使用指定的 Comparator 按提取的鍵進(jìn)行比較

Throws:

Throw名稱 Throw描述
NullPointerException 如果任一參數(shù)為空

comparing

static > Comparator comparing(Function keyExtractor)

接受從類型 T 中提取 Comparable 排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator。

如果指定的函數(shù)也是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素類型
U Comparable 排序鍵的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取 Comparable 排序鍵的函數(shù)

返回:

通過(guò)提取的鍵進(jìn)行比較的比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空

comparingInt

static Comparator comparingInt(ToIntFunction keyExtractor)

接受從類型 T 中提取 int 排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator

如果指定的函數(shù)也是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取整數(shù)排序鍵的函數(shù)

返回:

通過(guò)提取的鍵進(jìn)行比較的比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空

comparingLong

static Comparator comparingLong(ToLongFunction keyExtractor)

接受從類型 T 中提取長(zhǎng)排序鍵的函數(shù),并返回按該排序鍵進(jìn)行比較的 Comparator。

如果指定的函數(shù)也是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取長(zhǎng)排序鍵的函數(shù)

返回:

通過(guò)提取的鍵進(jìn)行比較的比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空

comparingDouble

static Comparator comparingDouble(ToDoubleFunction keyExtractor)

接受一個(gè)從類型 T 中提取雙重排序鍵的函數(shù),并返回一個(gè)按該排序鍵進(jìn)行比較的 Comparator。

如果指定的函數(shù)也是可序列化的,則返回的比較器是可序列化的。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 要比較的元素類型

參數(shù):

參數(shù)名稱 參數(shù)描述
keyExtractor 用于提取雙重排序鍵的函數(shù)

返回:

通過(guò)提取的鍵進(jìn)行比較的比較器

Throws:

Throw名稱 Throw描述
NullPointerException 如果參數(shù)為空

本文名稱:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSComparator
鏈接分享:http://m.5511xx.com/article/cdjshcp.html