自定义排序的常用方式

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

在日常面试过程中,自定义排序是一个出现频率比较高的题目。以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类型,需要做转换,如上。
相关文章
|
6月前
|
搜索推荐 算法 Python
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
55 2
|
6月前
|
Java
java 实现Comparable接口排序,升序、降序、倒叙
java 实现Comparable接口排序,升序、降序、倒叙
60 0
|
C#
c#集合去重&排序常用方法
list和数组转Hashset跟SortedSet进行排序和去重,以及当Hashset和SortedSet存放的是类时如何进行自定义的排序和去重
94 2
|
JavaScript
数组双重去重的方式五对象属性去重
数组双重去重的方式五对象属性去重
42 0
|
JavaScript
数组双重去重的方式四先排序在对比
数组双重去重的方式四先排序在对比
46 0
|
存储 Java
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
693 0
sort()排序以及多个属性数组对象排序(按条件排序)
sort()排序以及多个属性数组对象排序(按条件排序)
109 0
|
XML JavaScript 前端开发
若依框架实现表格按照属性排序 升序或降序
若依框架实现表格按照属性排序 升序或降序
2058 0
若依框架实现表格按照属性排序 升序或降序
TreeSet的两种排序方式
示例: 示例公用类: public class MyDate { private int month; private int year; private int day; @Override public String toString() { return "MyDate{" + "month=" + month + ", year=" + year +
107 0
TreeSet的两种排序方式