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

Java中Comparator升序降序的具體使用

 更新時(shí)間:2023年06月09日 15:19:21   作者:xiaopangcame  
本文主要介紹了Java中Comparator升序降序的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在使用Java自帶的排序函數(shù)時(shí),往往需要根據(jù)自己的需求自定義比較器。以前一直對(duì)Comparator的升序降序疑惑?,F(xiàn)在記錄一下,加深下印象。

先給結(jié)論:

實(shí)現(xiàn)Comparator接口,必須實(shí)現(xiàn)下面這個(gè)函數(shù):

@Override
public int compare(CommentVo o1, CommentVo o2) {
           return o1.getTime().compareTo(o2.getTime());
}

這里o1表示位于前面的對(duì)象,o2表示后面的對(duì)象

  • 返回-1(或負(fù)數(shù)),表示不需要交換01和02的位置,o1排在o2前面,asc
  • 返回1(或正數(shù)),表示需要交換01和02的位置,o1排在o2后面,desc

舉例說明:(分析說明在運(yùn)行結(jié)果之后)

package com.zhb.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class A {
    int a;
    public A(int a) {
        this.a = a;
    }
    @Override
    public String toString() {
        return "[a=" + a + "]";
    }
}
class MyComparator implements Comparator<A> {
    @Override
    public int compare(A o1, A o2) {
        //升序
        //return o1.a - o2.a;
        //降序:后面會(huì)具體分析為什么降序
        return o2.a - o1.a;
    }
}
public class ComparatorTest {
    public static void main(String[] args) {
        A a1 = new A(5);
        A a2 = new A(7);
        List<A> list = new ArrayList<A>();
        list.add(a1);
        list.add(a2);
        Collections.sort(list, new MyComparator());
        System.out.println(list);
    }
}

輸出結(jié)果:

下面來用我們之前的結(jié)論解釋為什么return o2.a - o1.a;就是降序了:

首先o2是第二個(gè)元素,o1是第一個(gè)元素。無非就以下這些情況:

①: o2.a > o1.a : 那么此時(shí)返回正數(shù),表示需要調(diào)整o1,o2的順序,也就是需要把o2放到o1前面,這不就是降序了么。

②:o2.a < o1.a : 那么此時(shí)返回負(fù)數(shù),表示不需要調(diào)整,也就是此時(shí)o1 比 o2大, 不還是降序么。

到此這篇關(guān)于Java中Comparator升序降序的具體使用的文章就介紹到這了,更多相關(guān)Java Comparator升序降序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

永顺县| 包头市| 呼和浩特市| 东城区| 随州市| 丹棱县| 民和| 化德县| 寻甸| 清水河县| 泗阳县| 阳江市| 乐陵市| 礼泉县| 革吉县| 迁安市| 堆龙德庆县| 集安市| 新昌县| 绥棱县| 南华县| 陆丰市| 兴安盟| 安康市| 泗水县| 宾阳县| 新乡县| 新巴尔虎右旗| 汾阳市| 福海县| 岳普湖县| 惠水县| 敖汉旗| 通城县| 鄯善县| 九江县| 大悟县| 乌鲁木齐县| 湖口县| 北碚区| 达孜县|