自定义排序的常用方式

简介: 自定义排序的常用方式

在日常面试过程中,自定义排序是一个出现频率比较高的题目。以list的自定义排序为例,一个多级排序的示例如下:


List<String[]> res = new ArrayList<>();
for(int i=1;i<list.size();i++){
    res.add(list.get(i).split(" "));
}
res.sort(new Comparator<String[]>(){
    @Override
    public int compare(String[] s1,String[] s2){
        if(Double.valueOf(s1[1])>Double.valueOf(s2[1])){
            return -1;
        }else if(Double.valueOf(s1[1])<Double.valueOf(s2[1])){
            return 1;
        }else{
            if(Double.valueOf(s1[3])>Double.valueOf(s2[3])){
                return 1;
            }else if(Double.valueOf(s1[3])<Double.valueOf(s2[3])){
                return -1;
            }else{
                if(Double.valueOf(s1[2])<Double.valueOf(s2[2])){
                    return 1;
                }else if(Double.valueOf(s1[2])>Double.valueOf(s2[2])){
                    return -1;
                }else{
                    return 0;
                }
            }
        }
    }
});
  • 排序方式详解:


a. 自定义Comparator方法
b. 自定义升序或降序
   1. 升序方式:if(val1 < val2) return -1;
   2. 降序方式:if(val1 > val2) return -1;
  • 小数的处理


保留两位小数:
String.format("%.2f",Double.parseDouble(String).toString()
常见错误:f!=java.lang.String
 原因:String.format("%.2f",temp).toString()中,temp的值为String类型,需要做转换,如上。
相关文章
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
Java中Comparable接口和Comparator接口的区别(如果想知道Java中Comparable接口和Comparator接口的区别,那么只看这一篇就足够了!)
Py之zhon:zhon库的简介、安装、使用方法之详细攻略
Py之zhon:zhon库的简介、安装、使用方法之详细攻略
Py之zhon:zhon库的简介、安装、使用方法之详细攻略
|
域名解析 安全 关系型数据库
使用wordPress搭建个人博客
搭建个人博客有很多选择,如果你本人不是从事软件开发行业的人员建议使用GitHub page构建一个静态博客就可以满足使用了。作为一名软件开发人员,我会选择使用WordPress来搭建个人博客,顺便还能巩固一下相关知识,而且需要的费用也不是很多,毕竟在修自己的家,为何不修的高大上一点呢。
3745 1
使用wordPress搭建个人博客
|
Shell Linux
Linux 有问必答:如何知道当前正在使用的 shell 是哪个?
Linux 有问必答:如何知道当前正在使用的 shell 是哪个? 问题: 我经常在命令行中切换 shell。是否有一个快速简便的方法来找出我当前正在使用的 shell 呢?此外,我怎么能找到当前 shell 的版本? 找到你当前正在使用的 Shell 版本 有多种方式可以查看你目前在使用什么 shell,最简单的方法就是通过使用 shell 的特殊参数。
11244 0
|
1天前
|
云安全 监控 安全
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
835 5
|
12天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1066 39
|
8天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
627 36
|
12天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
690 58
大厂CIO独家分享:AI如何重塑开发者未来十年