• Java对ArrayList进行排序


    数字使用直接比较大小来排序,String的话,使用compare()方法进行排序。

    测试代码:

    1.对字符串对象排序

     1     @Test
     2     public void test17() throws Exception {
     3         List< String > stringList = new ArrayList<>();
     4         stringList.add("haha");
     5         stringList.add("123");
     6         stringList.add("wq");
     7         stringList.add("d");
     8         stringList.add("rt");
     9         stringList.add("uuk");
    10         System.out.println("排序前:" + stringList);
    11         Collections.sort(stringList, new Comparator< String >() {
    12             @Override
    13             public int compare(String lhs, String rhs) {
    14                 System.out.println("排序字符串:" + lhs + "," + rhs);
    15 
    16                 int i = lhs.compareTo(rhs);
    17                 System.out.println("排序结果" + i);
    18                 if ( i > 0 ) {
    19                     return 1;
    20                 } else {
    21                     return -1;
    22                 }
    23             }
    24         });
    25         System.out.println("排序后:" + stringList);
    26     }

    打印的日志:

     1 排序前:[haha, 123, wq, d, rt, uuk]
     2 排序字符串:123,haha
     3 排序结果-55
     4 排序字符串:wq,123
     5 排序结果70
     6 排序字符串:wq,haha
     7 排序结果15
     8 排序字符串:d,haha
     9 排序结果-4
    10 排序字符串:d,123
    11 排序结果51
    12 排序字符串:rt,haha
    13 排序结果10
    14 排序字符串:rt,wq
    15 排序结果-5
    16 排序字符串:uuk,haha
    17 排序结果13
    18 排序字符串:uuk,wq
    19 排序结果-2
    20 排序字符串:uuk,rt
    21 排序结果3
    22 排序后:[123, d, haha, rt, uuk, wq]

    2.对数字进行排序

     1     @Test
     2     public void test18() throws Exception {
     3         List< Integer > stringList = new ArrayList<>();
     4         stringList.add(123);
     5         stringList.add(32);
     6         stringList.add(0);
     7         stringList.add(-4);
     8         stringList.add(5);
     9         stringList.add(123131);
    10         System.out.println("排序前:" + stringList);
    11         Collections.sort(stringList, new Comparator< Integer >() {
    12             @Override
    13             public int compare(Integer lhs, Integer rhs) {
    14                 if ( lhs > rhs ) {
    15                     return 1;
    16                 } else {
    17                     return -1;
    18                 }
    19             }
    20         });
    21         System.out.println("排序后:" + stringList);
    22     }

    打印日志:

    排序前:[123, 32, 0, -4, 5, 123131]
    排序后:[-4, 0, 5, 32, 123, 123131]

    在实现Comparator接口的compare()方法的时候,return 1代表大于,return -1代表小于。然后根据返回值来进行排序。

  • 相关阅读:
    数论小结转载
    hdu 3792 二分
    求N的所有因子(约数)
    整数划分 --- 一个老生长谈的问题 动态规划
    hdu 1541 Stars poj 1195 Mobile phones(二维) poj 2155 Matrix(二维) hdu 3584 Cube(三维) 树状数组
    zoj 3175 Number of Containers
    asp.netMVC中权限控制论
    asp.net下使用Cookie保存登录信息
    asp.netMVC中实现分页方法
    asp.net异步上传
  • 原文地址:https://www.cnblogs.com/liyiran/p/5561109.html
Copyright © 2020-2023  润新知