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

java如何自定義List中的sort()排序,用于日期排序

 更新時(shí)間:2021年11月08日 11:19:24   作者:精打細(xì)算  
這篇文章主要介紹了java如何自定義List中的sort()排序,用于日期排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java 自定義List中的sort()排序

1、問(wèn)題描述

List是java中一個(gè)有序可重復(fù)的的集合,其中自帶的.sort()排序方法,該方法在針對(duì)純數(shù)字類(lèi)型List集合排序的時(shí)候很有效。但是對(duì)于裝入其他類(lèi)型的List集合,自帶的sort()方法排序我們很難控制,比如一個(gè)日期集合的排序。

2、解決方法

java中List允許我們自定義sort()排序方法,以下自定義了List集合的sort排序方法,用于對(duì)一個(gè)字符串類(lèi)型的日期集合進(jìn)行排序。

//待排序的集合
List<String> list=new ArrayList<String>();
list.add("2019-06");
list.add("2019-11");
list.add("2019-02");
list.add("2019-09");
list.add("2019-05");
//自定義list排序,集合數(shù)據(jù)(月份)按升序排序;
final SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM");
Collections.sort(list, new Comparator<String>(){
    @Override
 public int compare(String month1, String month2) {
  int mark = 1;
  try {
      Date date1 = sdft.parse(month1);
      Date date2 = sdft.parse(month2);
      if(date1.getTime() < date2.getTime()){
       mark = -1;//調(diào)整順序,-1為不需要調(diào)整順序;
      }
      if(month1.equals(month2)){
       mark =  0;
  }
  } catch (ParseException e) {
   LOG.error("日期轉(zhuǎn)換異常", e);
   e.printStackTrace();
  }
 return mark;
 } //compare
});

3、其他

另外java兩個(gè)日期類(lèi)型的對(duì)象也可以用如下方法進(jìn)行比較。

Date() date1=new Date();
Date() date2=new SimpleDateFormat("yyyy-MM-dd").parse("2019-06-11");
Boolean flag;
if(date1.before(date2)){
 flag=true;
}

a.before(b);該方法是判斷a日期是否小于b日期,返回的是一個(gè)布爾類(lèi)型結(jié)果。

java Collections類(lèi):sort()升序排序

正向排序

使用 Collections 類(lèi)的靜態(tài)方法 sort() 可以對(duì)集合中的元素進(jìn)行升序排序。這要求列表中的所有元素都必須實(shí)現(xiàn) Comparable 接口,而且所有元素都必須是使用指定比較器可相互比較的。

sort() 方法主要有如下兩種重載形式

  • void sort(List list):根據(jù)元素的自然順序?qū)现械脑剡M(jìn)行升序排序。
  • void sort(List list,Comparator comparator):按 comparator 參數(shù)指定的排序方式對(duì)集合中的元素進(jìn)行排序。
public  class  Test{
    public static void main(String[] args) {
        Student Student =new Student("張1","6M");
        Student Student1 =new Student("張2","1M");
        Student Student2 =new Student("張4","5M");
        Student Student3 =new Student("張5","1M");
        List<Student> list=new ArrayList<Student>();
        list.add(Student);
        list.add(Student1);
        list.add(Student2);
        list.add(Student3);
        Collections.sort(list, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return  o2.getAge().compareTo(o1.getAge());
            }
        });
        System.out.println(list.toString());
    } 
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA入門(mén)教學(xué)之快速搭建基本的springboot(從spring boot到spring cloud)

    JAVA入門(mén)教學(xué)之快速搭建基本的springboot(從spring boot到spring cloud)

    本文主要入門(mén)者介紹怎么搭建一個(gè)基礎(chǔ)的springboot環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹從spring boot到spring cloud的完美搭建過(guò)程,適用java入門(mén)教學(xué),需要的朋友可以參考下
    2021-02-02
  • 幾種SpringBoot的屬性配置方式詳解

    幾種SpringBoot的屬性配置方式詳解

    通常項(xiàng)目配置信息都寫(xiě)在.properties或者.yml文件中,但是打成jar包部署后,如果需要修改配置信息,還需要改完再重新打包部署,因此,下面介紹幾種SpringBoot的屬性配置方式,需要的朋友可以參考下
    2024-12-12
  • 解決Spring AOP 同類(lèi)調(diào)用失效問(wèn)題

    解決Spring AOP 同類(lèi)調(diào)用失效問(wèn)題

    這篇文章主要介紹了解決Spring AOP 同類(lèi)調(diào)用失效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java異常處理中的各種細(xì)節(jié)匯總

    Java異常處理中的各種細(xì)節(jié)匯總

    這篇文章主要給大家介紹了關(guān)于Java異常處理中的各種細(xì)節(jié)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Java日志框架打印應(yīng)用程序日志代碼的執(zhí)行情況分析

    Java日志框架打印應(yīng)用程序日志代碼的執(zhí)行情況分析

    在配置INFO日志級(jí)別時(shí),日志器(logger)中debug級(jí)的日志代碼仍會(huì)被執(zhí)行,只是是否輸出取決于配置的日志級(jí)別,本文基于Java 1.8、SLF4J 1.7.25和Log4j 2.20.0進(jìn)行實(shí)驗(yàn),詳述了日志框架處理日志代碼的機(jī)制,感興趣的朋友一起看看吧
    2024-10-10
  • java jdbc連接和使用詳細(xì)介紹

    java jdbc連接和使用詳細(xì)介紹

    這篇文章主要介紹了 java jdbc連接和使用詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • SpringBoot創(chuàng)建自定義starter詳解

    SpringBoot創(chuàng)建自定義starter詳解

    這篇文章主要介紹了SpringBoot創(chuàng)建自定義starter詳解,Starter是Spring Boot中的一個(gè)非常重要的概念,Starter相當(dāng)于模塊,它能將模塊所需的依賴(lài)整合起來(lái)并對(duì)模塊內(nèi)的Bean根據(jù)環(huán)境(條件)進(jìn)行自動(dòng)配置,需要的朋友可以參考下
    2024-01-01
  • 5個(gè)Java API使用技巧

    5個(gè)Java API使用技巧

    這篇文章主要為大家詳細(xì)介紹了Java API安全和性能方面的簡(jiǎn)單易用技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 深入淺析JSON在java中的使用

    深入淺析JSON在java中的使用

    這篇文章主要介紹了JSON在java中的使用,包括javaBean和json的互轉(zhuǎn),List 和 json 的互轉(zhuǎn)及map 和 json 的互轉(zhuǎn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-04-04
  • java從mysql導(dǎo)出數(shù)據(jù)的具體實(shí)例

    java從mysql導(dǎo)出數(shù)據(jù)的具體實(shí)例

    這篇文章主要介紹了java從mysql導(dǎo)出數(shù)據(jù)的具體實(shí)例,有需要的朋友可以參考一下
    2013-12-12

最新評(píng)論

新乡市| 开原市| 江永县| 八宿县| 江永县| 阜新| 法库县| 昂仁县| 宜都市| 新巴尔虎右旗| 乡城县| 铜川市| 平原县| 罗田县| 桂林市| 峨眉山市| 金沙县| 大新县| 小金县| 民丰县| 五河县| 无极县| 赤壁市| 西丰县| 连云港市| 凌海市| 南宁市| 神池县| 都江堰市| 浠水县| 德州市| 贺州市| 桐梓县| 普安县| 堆龙德庆县| 山东省| 平阳县| 科技| 呈贡县| 大安市| 广元市|