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

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

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

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

先給結(jié)論:

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

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

這里o1表示位于前面的對象,o2表示后面的對象

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

舉例說明:(分析說明在運行結(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;
        //降序:后面會具體分析為什么降序
        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是第二個元素,o1是第一個元素。無非就以下這些情況:

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

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

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

相關文章

最新評論

长顺县| 吉首市| 饶河县| 青龙| 上蔡县| 阳春市| 犍为县| 贺兰县| 马公市| 通化市| 新晃| 陇川县| 萨迦县| 丹江口市| 阳高县| 砚山县| 建阳市| 宝坻区| 永仁县| 邓州市| 高阳县| 潞西市| 浑源县| 东阿县| 宁强县| 姜堰市| 贵南县| 岳阳县| 道真| 邯郸县| 洞头县| 遂川县| 北海市| 玛沁县| 德令哈市| 九台市| 舟山市| 孟州市| 凤山县| 凤冈县| 达孜县|