最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中Comparable接口和自定義比較器示例講解

 更新時(shí)間:2020年10月13日 10:02:28   作者:飝鱻.  
這篇文章主要給大家介紹了關(guān)于JAVA中Comparable接口和自定義比較器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

自然排序

TreeSet集合在存儲(chǔ)數(shù)據(jù)時(shí)有一定的順序,它會(huì)將一些數(shù)據(jù)進(jìn)行比較,比較調(diào)用的是comparaTo()方法,該方法是在Comparable中定義的,自然排序要求TreeSet集合中存儲(chǔ)的數(shù)據(jù)必須實(shí)現(xiàn)Comparable接口,并且重寫(xiě)ComparaTo()方法

public class 自然排序 {
 public static void main(String[] args) {
 //定義一個(gè)TreeSet集合
 TreeSet treeSet = new TreeSet();
 Teacher t1 = new Teacher("Jack",19);
 Teacher t2 = new Teacher("King",20);
 Teacher t3 = new Teacher("Tom",19);
 Teacher t4 = new Teacher("Rose",20);
 treeSet.add(t1);
 treeSet.add(t2);
 treeSet.add(t3);
 treeSet.add(t4);
 System.out.println(treeSet);
 }
}
//定義Teacher類實(shí)現(xiàn)Comparable接口
class Teacher implements Comparable{

 String name;
 int age;
 public Teacher(String name,int age){
 this.name = name;
 this.age = age;
 }
 //重寫(xiě)toString方法
 @Override
 public String toString() {
 return "Teacher{" +
  "name='" + name + '\'' +
  ", age=" + age +
  '}';
 }
 //先比較年齡在比較名字
 @Override
 public int compareTo(Object o) {
 Teacher teacher = (Teacher)o;
 if (this.age > teacher.age){
  return 1;
 }
 if (this.age == teacher.age){
  return this.name.compareTo(teacher.name);
 }
 return -1;
 }
}

運(yùn)行結(jié)果

[Teacher{name='Jack', age=19}, Teacher{name='Tom', age=19}, Teacher{name='King', age=20}, Teacher{name='Rose', age=20}]

定制排序

如果單單使用ComparaTo()不能滿足要求,這時(shí)可以通過(guò)在創(chuàng)建TreeSet集合的時(shí)候就自定義一個(gè)比較器來(lái)對(duì)元素進(jìn)行定制排序

import java.util.Comparator;
import java.util.TreeSet;

public class 定制排序 {
 public static void main(String[] args) {
 //在創(chuàng)建集合是傳入比較器
 TreeSet treeSet = new TreeSet(new MyComparable());
 treeSet.add("Jack");
 treeSet.add("Tom");
 treeSet.add("Helena");
 System.out.println(treeSet);
 }
}
//自定義的比較器
class MyComparable implements Comparator{

 @Override
 public int compare(Object o1, Object o2) {
 //以單詞的長(zhǎng)度來(lái)排序
 String s1 = (String)o1;
 String s2 = (String)o2;
 int resoult = s1.length() - s2.length();
 return resoult;
 }
}

結(jié)果

[Tom, Jack, Helena]

總結(jié)

到此這篇關(guān)于JAVA中Comparable接口和自定義比較器的文章就介紹到這了,更多相關(guān)JAVA中Comparable接口和自定義比較器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaEE7+Websockets+GlassFish4打造聊天室

    JavaEE7+Websockets+GlassFish4打造聊天室

    Java EE 7已經(jīng)發(fā)布很久了,新增加了很多新的功能和特性,如新增或更新了不少的JSR標(biāo)準(zhǔn)。其中特別受到關(guān)注的是Websockets。它的一個(gè)好處之一是減少了不必要的網(wǎng)絡(luò)流量。它主要是用于在客戶機(jī)和服務(wù)器之間建立單一的雙向連接。
    2015-09-09
  • SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存

    SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存

    本文主要介紹了SpringBoot結(jié)合Redis實(shí)現(xiàn)緩存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Springboot自動(dòng)加載配置的原理解析

    Springboot自動(dòng)加載配置的原理解析

    Springboot遵循“約定優(yōu)于配置”的原則,使用注解對(duì)一些常規(guī)的配置項(xiàng)做默認(rèn)配置,減少或不使用xml配置,讓你的項(xiàng)目快速運(yùn)行起來(lái),這篇文章主要給大家介紹了關(guān)于Springboot自動(dòng)加載配置原理的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • java實(shí)現(xiàn)emqx設(shè)備上下線監(jiān)聽(tīng)詳解

    java實(shí)現(xiàn)emqx設(shè)備上下線監(jiān)聽(tīng)詳解

    這篇文章主要為大家介紹了java實(shí)現(xiàn)emqx設(shè)備上下線監(jiān)聽(tīng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • org.springframework.dao.OptimisticLockingFailureException樂(lè)觀鎖失敗的解決方法

    org.springframework.dao.OptimisticLockingFailureException樂(lè)觀鎖

    本文主要介紹了org.springframework.dao.OptimisticLockingFailureException樂(lè)觀鎖失敗的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Java實(shí)現(xiàn)的日歷功能完整示例

    Java實(shí)現(xiàn)的日歷功能完整示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的日歷功能,結(jié)合完整實(shí)例形式分析了Java日歷功能相關(guān)的日期時(shí)間獲取、計(jì)算、顯示等操作技巧,需要的朋友可以參考下
    2019-02-02
  • java 單元測(cè)試 對(duì)h2數(shù)據(jù)庫(kù)數(shù)據(jù)清理方式

    java 單元測(cè)試 對(duì)h2數(shù)據(jù)庫(kù)數(shù)據(jù)清理方式

    這篇文章主要介紹了java 單元測(cè)試 對(duì)h2數(shù)據(jù)庫(kù)數(shù)據(jù)清理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作

    將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作

    這篇文章主要介紹了將下載好的jar包導(dǎo)入到本地maven倉(cāng)庫(kù)中操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Hibernate原理及應(yīng)用

    Hibernate原理及應(yīng)用

    本文主要介紹了Hibernate原理及應(yīng)用。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • java實(shí)現(xiàn)計(jì)算器加法小程序(圖形化界面)

    java實(shí)現(xiàn)計(jì)算器加法小程序(圖形化界面)

    這篇文章主要介紹了Java實(shí)現(xiàn)圖形化界面的計(jì)算器加法小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論

礼泉县| 丰都县| 广饶县| 阿尔山市| 长泰县| 那曲县| 平安县| 河曲县| 蓝山县| 西平县| 巍山| 综艺| 哈尔滨市| 潼关县| 津南区| 习水县| 柘荣县| 巍山| 吴旗县| 天水市| 来宾市| 股票| 民县| 贵德县| 苍梧县| 罗山县| 淳化县| 乐平市| 武穴市| 云南省| 曲靖市| 诏安县| 平顺县| 灵丘县| 宜兴市| 盘锦市| 若尔盖县| 嵊州市| 鄂托克前旗| 家居| 东安县|