自定义排序的常用方式

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

在日常面试过程中,自定义排序是一个出现频率比较高的题目。以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类型,需要做转换,如上。
相关文章
|
5月前
|
搜索推荐 算法 Python
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
|
6月前
|
C#
c#集合去重&排序常用方法
list和数组转Hashset跟SortedSet进行排序和去重,以及当Hashset和SortedSet存放的是类时如何进行自定义的排序和去重
47 2
|
9月前
|
JavaScript
数组双重去重的方式五对象属性去重
数组双重去重的方式五对象属性去重
23 0
|
9月前
|
JavaScript
数组双重去重的方式四先排序在对比
数组双重去重的方式四先排序在对比
32 0
|
9月前
|
存储 Java
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
2.2 Lambda表达式在集合操作中的应用:过滤和筛选集合元素
459 0
|
9月前
|
Java
java8 List根据对象中属性去重-多属性去重-去除重复字符串
java8 List根据对象中属性去重-多属性去重-去除重复字符串
651 0
|
11月前
sort()排序以及多个属性数组对象排序(按条件排序)
sort()排序以及多个属性数组对象排序(按条件排序)
57 0
TreeSet的两种排序方式
示例: 示例公用类: public class MyDate { private int month; private int year; private int day; @Override public String toString() { return "MyDate{" + "month=" + month + ", year=" + year +
79 0
TreeSet的两种排序方式
|
算法 Java 数据安全/隐私保护
|
存储 Java 索引
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例
TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例的简单示例
151 0
Java中TreeSet集合、自然排序、比较器排序、成绩排序及不重复随机数案例