java 排序工具类_List 排序 Java工具类详解
/**
#############################################################################
# DESCRIBE 关于给Vector,ArrayList和LinkedList特定List集合排序的方法
# AUTHOR
# DATE 2007-3-16
# COMPANY FLX
# PORJECT JAVA
#############################################################################
*/
import java.io.PrintStream;
import java.text.CollationKey;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortList {
public static void main(String args[]) {
String words[] = { "man", "Man", "Woman", "woman", "Manana", "manana", "ma?ana", "Ma?ana", "Mantra", "mantra",
"mantel", "Mantel" };
PrintStream out = System.out;
List list = new ArrayList(Arrays.asList(words));
out.println("传入的list:");
out.println(list);
out.println();
Collections.sort(list);
out.println("默认的sorting:");
out.println(list);
out.println();
list = new ArrayList(Arrays.asList(words));
Comparator comp = Collections.reverseOrder();
Collections.sort(list, comp);
out.println("反向sorting:");
out.println(list);
out.println();
list = new ArrayList(Arrays.asList(words));
comp = new CollatorComparator();
Collections.sort(list, comp);
out.println("自定义排序sorting:");
out.println(list);
out.println();
list = new ArrayList(Arrays.asList(words));
comp = new CaseInsensitiveComparator();
Collections.sort(list, comp);
out.println("按照语种sorting:");
out.println(list);
out.println();
}
/**
#############################################################################
#
# @DESCRIBE 自定义的排序规则
# @author Administrator
#
#############################################################################
*/
public static class CaseInsensitiveComparator implements Comparator {
public int compare(Object element1, Object element2) {
String lower1 = element1.toString().toLowerCase();
String lower2 = element2.toString().toLowerCase();
return lower1.compareTo(lower2);
}
}
/**
#############################################################################
#
# @DESCRIBE 按照语种进行排序的规则
# @author Administrator
#
#############################################################################
*/
public static class CollatorComparator implements Comparator {
Collator collator = Collator.getInstance();
public int compare(Object element1, Object element2) {
CollationKey key1 = collator.getCollationKey(element1.toString());
CollationKey key2 = collator.getCollationKey(element2.toString());
return key1.compareTo(key2);
}
}
}
java 排序工具类_List 排序 Java工具类详解相关推荐
- Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控
Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控 2-1 JVM的参数类型 标准参数 x参数 XX参数 2-2 查看JVM运行时参数 2-3 jstat查看JVM统计信息 2- ...
- JAVA中的类和对象之this的详解
系列文章目录 第一章 JAVA中的类和对象之this的详解 目录 前言 一.为什么要有this引用 二.this的三种用法 1.this.成员变量 2.this.成员方法 3.this()调用其它的构 ...
- java 三种将list转换为map的方法详解
这篇文章主要介绍了java 三种将list转换为map的方法详解的相关资料,需要的朋友可以参考下 java 三种将list转换为map的方法详解 在本文中,介绍三种将list转换为map的方法: 1) ...
- java list 元素去重_小猿圈Java开发之list按照元素某个字段去重详解
小猿圈Java老师给大家分享一篇关于如何实现Java8中list按照元素的某个字段去重的详细介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们一起来看一下吧. ...
- HTTP协议版本介绍以及使用Wireshark工具针对HTTP进行抓包分析详解
一.http协议版本介绍 http:Hyper Text Transfer Protocol 超文本传输协议,是互联网应用最为广泛的一种网络协议,主要用于Web服务.通过计算机处理文本信息,格式为HT ...
- Java生产环境下性能监控与调优详解 大纲 学习感悟
Java生产环境下性能监控与调优详解 生产环境发生了内存溢出如何处理? 生产环境应该给服务器分配多少内存合适? 如何对垃圾收集器的性能进行调优? 4.生产环境CPU负载飙高该如何处理? 5.生产环境应 ...
- 农夫过河算法java,Java农夫过河问题的继承与多态实现详解
Java农夫过河问题的继承与多态实现详解 发布时间:2020-08-22 06:04:29 来源:脚本之家 阅读:61 作者:小任性嘛 题目描述: 一个农夫带着一匹狼.一只羊.一颗白菜要过河,只有一条 ...
- selenium工具启动Chrome浏览器时配置选项详解
mb62abf3afb54fb2022-06-18 00:02:10 文章标签chromechrome浏览器加载文章分类虚拟化云计算阅读数1473 前言 1. Chromeoptions 是Chrom ...
- Java Web中的EL(表达式语言)详解
Java Web中的EL(表达式语言)详解 表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容.通过EL可以简化在JSP开发中对对象的引用,从而规范页面 ...
- Java中print、printf、println的区别 详解
Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...
最新文章
- java sort reverse_Java ArrayList sort() 方法
- Matlab中自定义函数(一)
- Vue -渐进式JavaScript框架
- 三种SQL分页查询的存储过程
- HTML和css学术报告,清华大学 张超 副教授访问我院并做学术报告
- 使用函数统计指定c语言,浙大版《C语言程序设计(第3版)》题目集 习题5-5 使用函数统计指定数字的个数...
- 一个程序员送给大学生的一些话
- (30)VHDL实现比较器(有符号)
- 数据传输服务 DTS > 数据迁移 > 从自建数据库迁移至阿里云 > 源库为MySQL > 从自建MySQL迁移至RDS MySQL
- 如何通过索引从列表中删除元素?
- 基于热传导方程的高温作业专用服装设计(三)
- Hadoop大数据技术原理与应用-第一章初识Hadoop
- Unity UI层级管理框架
- LAMP环境的搭建与部署
- Cocos2d-x教程(33)-三维物体AABB碰撞检测算法
- Influx Sql系列教程三:measurement 表
- 基于Java 生产者消费者模式(详细分析)
- redis sorted_set跳跃表(skiplist)
- java项目进度跟踪管理系统
- 不忍舍弃的回忆——我的大学时代
热门文章
- Linux之Debian下安装LAMP apt-get安装方式
- 计算机组成原理 陈泽,江西师范大学-计算机组成原理的期末复习.doc
- 子网、超网和无类域间路由
- python 两个乘号是什么_(2)Python 变量和运算符
- 一、pytorch搭建实战以及sequential的使用
- java 访问线程_java线程简介(共享对数据的访问)
- mysql tomcat idea操作_IntelliJ IDEA + Tomcat + RestFul + Mysql打造属于自己的服务器
- php redis key,redis 在 php 中的应用(key篇)
- pythonsuper多重继承_Python多重继承引发的问题——牛逼的super
- 【uni-app】uParse 富文本解析插件遇到长图、大图宽高比异常问题