zoukankan      html  css  js  c++  java
  • java.util.Comparator 排序

    java8:  .sorted(Comparator.comparing(BattlePassLevelConf.BattlePassLevel :: getLevel).reversed())  List流反序:321

       .sorted(Comparator.comparing(BattlePassLevelConf.BattlePassLevel :: getLevel)) List流正序:123

    使用Comparator排序只需要实现他的接口并重写排序即可:compare方法拥有一个集合中需要比较的两个元素,自定义比较后认为需要往前排(索引0方向)的需要返回:放回-1,两个一样不需要动的放回:0,需要往后排(索引N方向)的放回:1.

    例如下面是对,palyerList这个集合做了排序,需要往前移动的都是返回 -1, 需要往后移动的 都是返回 1,不需要动的返回 0

    Collections.sort(playerList, new Comparator<Player>() {
                @Override
                public int compare(Player p1, Player p2) {
                    if (p1.getState() != State.OFFLINE && p2.getState() != State.OFFLINE) {
                        if (p1.getSocialList(0).equals(Social.FRIEND) && p2.getSocialList(0).equals(Social.FRIEND)) {
                            return 0; // 都在线都是好友
                        }
                        if (p1.getSocialList(0) == Social.FRIEND) {
                            return -1; // 都在线1是好友
                        }
                        if (p2.getSocialList(0) == Social.FRIEND) {
                            return 1; // 都在线2是好友
                        }
                        return 0; // 都在线都不是好友
                    }
                    if (!p1.getSocialList(0).equals(State.OFFLINE)) {
                        return -1; // 1在线
                    }
                    if (!p2.getSocialList(0).equals(State.OFFLINE)) {
                        return 1; // 2在线
                    }
                    return 0; // 都不在线
                }
            });
  • 相关阅读:
    HashMap和Hashtable及HashSet的区别
    Android获取系统的时间
    Android的布局属性
    ListView 在代码里设置margin
    如何用Vue自己实现一个message提示插件
    JS获取最近三个月日期范围
    css实现表单label文字两端对齐
    my utils
    Vue 路由&组件懒加载(按需加载)
    C# 通过window消息控制指定控件的scroll滚动
  • 原文地址:https://www.cnblogs.com/li-yan-long/p/14594056.html
Copyright © 2011-2022 走看看