自定义排序的常用方式

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

在日常面试过程中,自定义排序是一个出现频率比较高的题目。以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类型,需要做转换,如上。
相关文章
|
8月前
|
搜索推荐 算法 Python
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
61 2
|
2月前
多列组合作为判断依据的具体方法是什么?
通过以上方法,可以根据具体的业务需求和数据特点,灵活地选择以多列组合作为判断数据重复值的依据,从而更准确地处理和分析数据。
42 6
|
8月前
|
算法 前端开发
自定义字符串排序
自定义字符串排序
48 0
|
C#
c#集合去重&排序常用方法
list和数组转Hashset跟SortedSet进行排序和去重,以及当Hashset和SortedSet存放的是类时如何进行自定义的排序和去重
110 2
|
JavaScript
数组双重去重的方式五对象属性去重
数组双重去重的方式五对象属性去重
51 0
|
JavaScript
数组双重去重的方式四先排序在对比
数组双重去重的方式四先排序在对比
49 0
数组双重去重的方式一循环法去重笔记
数组双重去重的方式一循环法去重笔记
76 0
|
存储 Java
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
757 0
sort()排序以及多个属性数组对象排序(按条件排序)
sort()排序以及多个属性数组对象排序(按条件排序)
122 0