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

戏子无情 提交于 2020-01-08 13:52:02

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

public class Test { public static void main(String[] args) { long[] data = {4, 3, 1, 8, 6, 9, 2}; 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); }

}

今天无意中搜了一下Collections.reverse这个方法,结果发现有些人对它的误解蛮深的。下面是一个有百万访问量博主写的,reverse可以对指定列表进行降序排序,可是自己输出的结果都不是降序。 这里写图片描述

确实,使用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); } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 输出:

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!