zoukankan      html  css  js  c++  java
  • Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法

    1. 要求

    对List列表中的数据进行排序(正序、倒序),列表中的数据包括:整型(Integer)、字符串(String)、日期(Date)等。对于字符串,要求允许对它按照整型进行排序。

    2. 实现思路

    1. 对于整型、字符串、日期等数据,可以直接调用Collections.sort方法实现排序(正序、倒序)。

    2. 对于字符串按照整型排序,可以写一个类实现Comparable接口,在compare方法中将字符转换为整型进行比较;然后再调用Collections.sort的方法,传进一个Comparator来实现。

    3. 实现代码

    package com.clzhang.sample.collections;
    
    import java.util.*;
    
    public class CollectionSortTest {
        // 字符串按照整型排序比较器
        static class Str2IntComparator implements Comparator<String> {
            private boolean reverseOrder; // 是否倒序
            public Str2IntComparator(boolean reverseOrder) {
                this.reverseOrder = reverseOrder;
            }
            
            public int compare(String arg0, String arg1) {
                if(reverseOrder) 
                    return Integer.parseInt(arg1) - Integer.parseInt(arg0);
                else 
                    return Integer.parseInt(arg0) - Integer.parseInt(arg1);
            }
        }
    
    public static void main(String[] args) throws Exception { // 生成测试数据 List<String> list = new ArrayList<String>(); list.add("1001"); list.add("1002"); list.add("1003"); list.add("1"); list.add("2"); list.add("3"); list.add("11"); list.add("12"); list.add("13"); // 整型、字符串、日期都是类似的操作;下面只给出字符串的示范 System.out.println("当前顺序..."); System.out.println(list); Collections.sort(list); System.out.println("默认排序后..."); System.out.println(list); Collections.sort(list, Collections.reverseOrder()); System.out.println("倒序后..."); System.out.println(list); Collections.sort(list, new Str2IntComparator(false)); System.out.println("按整型排序后..."); System.out.println(list); Collections.sort(list, new Str2IntComparator(true)); System.out.println("按整型倒序后..."); System.out.println(list); } }

    输出:

    当前顺序...
    [1001, 1002, 1003, 1, 2, 3, 11, 12, 13]
    默认排序后...
    [1, 1001, 1002, 1003, 11, 12, 13, 2, 3]
    倒序后...
    [3, 2, 13, 12, 11, 1003, 1002, 1001, 1]
    按整型排序后...
    [1, 2, 3, 11, 12, 13, 1001, 1002, 1003]
    按整型倒序后...
    [1003, 1002, 1001, 13, 12, 11, 3, 2, 1]

  • 相关阅读:
    MongoDB Schema Design
    WinDBG中的poi是做什么用的?
    如何在Visual Studio中运行和调试汇编代码?
    [翻译图书] 未完工 Moving Applications to the Cloud on the Microsoft Windows Azure Platform 4
    在Word中生成随机的样本文本
    Quiz Win32内存表示与数值大小
    rep stos dword ptr es:[edi] 是做什么的?
    Windows Azure中虚拟机无法启动, 报错RoleStateUnknown的解决方案
    COM基础介绍
    64位的dump里如何寻找第一个到第四个参数?
  • 原文地址:https://www.cnblogs.com/nayitian/p/3243013.html
Copyright © 2011-2022 走看看