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]
Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法的更多相关文章
- Java 集合 散列表hash table
Java 集合 散列表hash table @author ixenos 摘要:hash table用链表数组实现.解决散列表的冲突:开放地址法 和 链地址法(冲突链表方式) hash table 是 ...
- JDBC Java 程序从 MySQL 数据库中读取数据,并备份到 xml 文档中
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 程序从 MySQL 数据库中读取数据,并 ...
- 用java在客户端读取mongodb中的数据并发送至服务器
使用Java自带的socket端口来实现,程序如下: Client.java package com.cn.gao; import java.net.*; import java.io.*; impo ...
- JDBC Java 程序从 MySQL 数据库中读取数据,并封装到 Javabean 对象中
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 连接 MySQL 数据库 用于测试的 M ...
- Java程序在向mysql中插入数据的时候出现乱码
今天在往数据库中插入数据的时候中文字符在数据库中就出现了乱码?网上有各种说法,但是适合我的,最终解决我的问题的只有下面一种! 在创建数据库的时候,注意设置编码方式. CREATE DATABASE ` ...
- java集合(1)- 类底层数据结构分析
Java 集合类图 参考:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
/*TreeSet * treeSet存入数据后自动调用元素的compareTo(Object obj) 方法,自动对数据进行排序 * 所以输出的数据是经过排序的数据 * 注:compareTo方法返 ...
- SQL语言(二) java怎样连接操作数据库中的数据
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S ...
- MySQL中在原表中做数据去重(按日期去重,保留id最小的记录)
表名称 code600300 delete from code600300 where id not in (select minid from (select min(id) as minid fr ...
- Java:几个正则式应用(检查汉字、日期、EMAIL、手机号码的合法性,替换字符串等)
1. 检查输入是否为合法汉字 /** * 判断输入字符是否为有效汉字 * @param str 字符 * @return 是否合法汉字 */ public static boolean isValid ...
随机推荐
- Grunt学习一:使用grunt创建jquery plugin.
下载安装github客户端. http://windows.github.com 打开github客户端. 登录后,点击左上角的加号,可以创建一个Repository. (也可以点击Clone,将 ...
- IETESTER ie10.local 下载
下载地址:ietester.ie10.exe.local.zip 技术交流QQ群: 15129679
- EM算法求高斯混合模型參数预计——Python实现
EM算法一般表述: 当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然预计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化( ...
- Discuz常见小问题-如何修改favourite图标
1做好一个ico图标之后,直接替换目录下的对应文件即可, 如果没效果刷新浏览器或更新后台CSS缓存.
- 限制RICHTEXTBOX的输入的范围
附件: http://files.cnblogs.com/xe2011/WindowsFormsApplication_LimitRichTextBoxInput.rar using ...
- 微信小程序 - 更改radio和checkbox选中样式
点击下载源码:示例-更改radio或checkbox选中样式
- 算法笔记_169:历届试题 兰顿蚂蚁(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只“蚂 ...
- java面试第八天
异常: 异常的分类 Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和Exception. Error:一个Error对象表示一个程序错误 ...
- java各种框架的比较,分析
Spring 框架 优点 1.提供了一种管理对象的方法,可以把中间层的对象有效地组织起来 2.采用了分层结构,可以增量引入到项目中. 3.代码测试较容易 4.非侵入性,应用程序对Spring API的 ...
- plsql 常用快捷键(自动替换)
plsql 常用快捷键 CreateTime--2018年4月23日17:33:05 Author:Marydon 说明:这里的快捷键,不同于以往的快捷键,输入指定字符,按快捷键,可以自动替换成你 ...