iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java中怎么使用Collections.reverse对list集合进行降序排序
  • 166
分享到

java中怎么使用Collections.reverse对list集合进行降序排序

2023-06-21 22:06:27 166人浏览 薄情痞子
摘要

这篇文章主要讲解了“java中怎么使用Collections.reverse对list集合进行降序排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中怎么使用Collections.

这篇文章主要讲解了“java中怎么使用Collections.reverse对list集合进行降序排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中怎么使用Collections.reverse对list集合进行降序排序”吧!

使用Collections.reverse对list集合进行降序排序

今天无意中搜了一下Collections.reverse这个方法,结果发现有些人对它的误解蛮深的。reverse可以对指定列表进行降序排序,可是自己输出的结果都不是降序。

java中怎么使用Collections.reverse对list集合进行降序排序

确实,使用Collections.reverse结合一定方法可以实现对list集合降序排序,但是直接使用Collections.reverse(list)这种方式来降序是错误的。

reverse的意思是反转,而不是降序。只是将list集合原来的顺序反转了一下,反转并不意味着降序了。所以要想实现降序,可以先对集合进行升序,然后再反转,这样就降序了。

举个例子:

import java.util.*;public class Test {  private static Map<Integer, String> map = new HashMap<Integer, String>();  public static void main(String[] args) {    long[] data = {1506326821000l, 1506327060000l, 1506326880000l, 1506327000000l, 1506326940000l, 1506326760000l, 1506326700000l};    List list = new ArrayList<>();    for (long key : data) {      list.add(key);    }    System.out.println(list);    //先升序    Collections.sort(list);    System.out.println(list);    //再反转    Collections.reverse(list);    System.out.println(list);  }}

输出:

[1506326821000, 1506327060000, 1506326880000, 1506327000000, 1506326940000, 1506326760000, 1506326700000]
[1506326700000, 1506326760000, 1506326821000, 1506326880000, 1506326940000, 1506327000000, 1506327060000]
[1506327060000, 1506327000000, 1506326940000, 1506326880000, 1506326821000, 1506326760000, 1506326700000]

Collections.reverse原理

public static void reverse(List<?> list) {        int size = list.size();  //REVERSE_THRESHOLD  =18 数据倒叙大小限制        if (size < REVERSE_THRESHOLD || list instanceof RandoMaccess) {        //折半处理,前后交换        //size>>1 相等于 size/2    for (int i=0, mid=size>>1, j=size-1; i<mid; i++, j--){            swap(list, i, j);        }                       } else {            ListIterator fwd = list.listIterator();            ListIterator rev = list.listIterator(size);            for (int i=0, mid=list.size()>>1; i<mid; i++) {                Object tmp = fwd.next();                fwd.set(rev.previous());                rev.set(tmp);            }        }    }

(1)next():返回集合中Iterator指向位置后面的元素

(2)previous():返回列表中ListIterator指向位置前面的元素

public static void swap(List<?> list, int i, int j) {        final List l = list;        //l.set(j, l.get(i)) 获取原来的数据  l.set(i, l.set(j, l.get(i)));    }    public ListIterator<E> listIterator(int index) {        if (index < 0 || index > size)            throw new IndexOutOfBoundsException("Index: "+index);        return new ListItr(index);    }  public E set(int index, E element) {        rangeCheck(index);         E oldValue = elementData(index);        elementData[index] = element;        return oldValue;    }

感谢各位的阅读,以上就是“java中怎么使用Collections.reverse对list集合进行降序排序”的内容了,经过本文的学习后,相信大家对java中怎么使用Collections.reverse对list集合进行降序排序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: java中怎么使用Collections.reverse对list集合进行降序排序

本文链接: https://www.lsjlt.com/news/300920.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中怎么使用Collections.reverse对list集合进行降序排序
    这篇文章主要讲解了“java中怎么使用Collections.reverse对list集合进行降序排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中怎么使用Collections....
    99+
    2023-06-21
  • 如何使用Collections.reverse对list集合进行降序排序
    目录使用Collections.reverse对list集合进行降序排序Collections.reverse原理使用Collections.reverse对list集合进行降序排序...
    99+
    2024-04-02
  • 怎么在java中对集合进行排序
    这篇文章将为大家详细讲解有关怎么在java中对集合进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于...
    99+
    2023-06-14
  • java怎么对list进行排序
    Java中可以使用Collections.sort()方法对List进行排序。具体步骤如下:1. 导入java.util包中的Col...
    99+
    2023-09-14
    java
  • Java 中如何对集合进行排序
    Java 中如何对集合进行排序 在 Java 中,集合是一种非常常见的数据结构,它可以用来存储一组元素,而且可以动态地增加或删除元素。在实际的开发中,我们经常需要对集合中的元素进行排序,以便更方便地查...
    99+
    2023-09-25
    java 开发语言
  • C#对集合进行排序
    先来看看下面List<T>泛型集合的排序例子: using System; using System.Collections.Generic; using System....
    99+
    2024-04-02
  • PHP中怎么对数组进行降序排序
    今天就跟大家聊聊有关PHP中怎么对数组进行降序排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。数组降序排序的三个函数:rsort():对数组元素进行降序排序arsort():根据关...
    99+
    2023-06-20
  • Python中对list进行排序
    很多时候,我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为...
    99+
    2023-01-31
    中对 Python list
  • 使用php怎么对数组进行降序或升序排序
    使用php怎么对数组进行降序或升序排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支...
    99+
    2023-06-14
  • Java 程序对数组元素进行降序排序
    对给定的数组进行降序排序,即将元素从大到小排列。 例子: 输入:数组 = {2, 6, 23, 98, 24, 35, 78} 输出: [98, 78, 35, 24, 23, 6, 2] 输入:数组...
    99+
    2023-10-10
    java 排序算法 算法
  • Java 对 List 进行排序,支持正序和倒序
    分享一下 Java 对 List 进行排序的方法,支持正序和倒序。 背景:如果你想要支持正序和倒序两种排序方式,你可以使用 Collections.sort() 或者 List.sort() 方法,并传入一个自定义的比较器。 实例代...
    99+
    2023-08-31
    java 开发语言
  • java怎么对数组降序排序
    Java中可以使用Arrays类的sort()方法对数组进行排序,如果需要降序排序,可以使用Comparator.reverseOr...
    99+
    2023-08-15
    java
  • Java中使用Lambda表达式对集合排序
    文章目录 一.利用lambda对list集合排序1.升序排序2.降序排序对对象集合操作,其实与基本类型集合操作类似对 JSONArray 排序 二.java8-Lambda中比较器Comp...
    99+
    2023-09-11
    java 开发语言
  • redis中对list进行排序的方法
    这篇文章主要介绍了redis中对list进行排序的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。redis中对list排序使用sort进行。...
    99+
    2024-04-02
  • C#怎么对集合进行排序和过滤操作
    对于集合的排序和过滤操作,可以使用LINQ(Language-Integrated Query)来实现。以下是一些常见的对集合进行排...
    99+
    2024-03-06
    C#
  • 怎么在java中对Sorted进行排序
    这篇文章给大家介绍怎么在java中对Sorted进行排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重...
    99+
    2023-06-14
  • 使用Stream流对集合排序
    文章目录 0 写在前面1 格式1.1 介绍:1.2 单个属性排序格式:1.3 多个属性排序格式:1.4 注意事项 2 代码举例 0 写在前面 有一些业务需要对集合按照一些规则进行排序,...
    99+
    2023-09-11
    java 数据库 开发语言
  • java集合进行排序的方式总结
    ava集合的工具类Collections中提供了两种排序的方法,分别是: Collections.sort(List list) Collections.sort(...
    99+
    2024-04-02
  • Java项目中怎么对Map进行排序
    这篇文章将为大家详细讲解有关Java项目中怎么对Map进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 Java Map的排序实例详解要对Map中的key-value键值对进...
    99+
    2023-05-31
    java map 进行排序
  • 怎么在java中对数组进行排序
    这期内容当中小编将会给大家带来有关怎么在java中对数组进行排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作