首页 > 其他分享 >集合排序 指定元素 在最前or最后

集合排序 指定元素 在最前or最后

时间:2023-02-20 11:25:40浏览次数:35  
标签:30 40 最前 numbers 70 集合 排序 o1

最近某个需求有个特点,集合中存在各种状态的元素,这些元素按照正常流程展示时直接倒序展示即可,但遇到特殊情况,某个元素需展示在最前。

倒序处理

指定元素在最前

List<Integer> numbers = Lists.newArrayList(70, 30, 0, 40);
System.out.println(numbers);
numbers.sort(((o1, o2) -> {
    if (o1 == 0) {
        return -1;
    }
    return o2.compareTo(o1);
}));
System.out.println(numbers);

排序前输出:[70, 30, 0, 40]
排序后输出:[0, 70, 40, 30]

指定元素在最后

List<Integer> numbers = Lists.newArrayList(70, 30, 0, 40);
System.out.println("排序前输出:" + numbers);
numbers.sort(((o1, o2) -> {
    if (o1 == 0) {
        return 1;
    }
    return o2.compareTo(o1);
}));
System.out.println("排序后输出:" + numbers);
排序前输出:[70, 30, 0, 40]
排序后输出:[70, 40, 30, 0]

正序处理

指定元素在最前

List<Integer> numbers = Lists.newArrayList(70, 30, 0, 40);
System.out.println("排序前输出:" + numbers);
numbers.sort(((o1, o2) -> {
    if (o1 == 0) {
        return -1;
    }
    return o1.compareTo(o2);
}));
System.out.println("排序后输出:" + numbers);

排序前输出:[70, 40, 30, 0]
排序后输出:[0, 30, 40, 70]

指定元素在最后

List<Integer> numbers = Lists.newArrayList(70, 30, 0, 40);
System.out.println("排序前输出:" + numbers);
numbers.sort(((o1, o2) -> {
    if (o1 == 0) {
        return 1;
    }
    return o1.compareTo(o2);
}));
System.out.println("排序后输出:" + numbers);
排序前输出:[70, 40, 30, 0]
排序后输出:[30, 40, 70, 0]

标签:30,40,最前,numbers,70,集合,排序,o1
From: https://www.cnblogs.com/zhengyulun/p/17136665.html

相关文章

  • 泛型集合
    importjava.util.ArrayList;importjava.util.Iterator;publicclassDemo01{publicstaticvoidmain(String[]args){//泛型的好处:1.提高代码的重用性......
  • 插入排序
    插入排序的时间复杂度是N^2。插入排序有N-1趟排序组成,对于i=1到N-1趟,插入排序保证从位置0到位置i的元素处于排好的状态。从位置j开始与前一个比较,符合条件的就交换,一直到不......
  • 集合 Set方法
     set方法可以去重数组//声明一个setlete=newSet()letess=newSet(['张三','李四','王五','李四'])console.log(ess);......
  • stata 数据结构修改命令集合
    生成新变量:generate1.glnwage=log(wage)前面是变量名,后面是代表取对数2.gwage2=wage^2变平方3.gwage=edu*wage生成wage和edu的互动项4.gw=exp(lnwage)......
  • 【YBT2023寒假Day10 A】集合比较(数学)(启发式分裂)
    集合比较题目链接:YBT2023寒假Day10A题目大意给你一个长度为n的排列p,定义两个大小为n不可重集合的比较方式是先比较各自第p1小的元素,如果相同比p2,以此类推。给......
  • Python实现排序算法
    冒泡排序defbubbleSort(arr):foriinrange(len(arr)-1):forjinrange(len(arr)-1):ifarr[j]>arr[j+1]:arr[j],arr[j+1......
  • 排序
    排序题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交......
  • 对Map排序
     一下代码为给一个hashMap的key排序,value排序一样处理 publicstaticList<Map.Entry<String,Integer>>sortHashMapInteger(HashMap<String,Integer>map,finalStrin......
  • 各大排序算法的优缺点以及实现方法
    这篇文章,我们来谈谈一些关于排序的东西注意!这篇文章在写的时候混淆了一个概念,“稳定”本义指的是能保证两个相等的数,经过排序之后,序列的前后位置顺序不变。在本文中理解成......
  • [django]drf入门004 过滤排序分页(转载)
    原文:https://pythondjango.cn/1.分页目录为什么要分页?DRF提供的分页类PageNumberPagination类LimitOffsetPagination类CursorPagination类函数类视图中使用分......